Statistics
| Revision:

gvsig-vectorediting / org.gvsig.vectorediting / trunk / org.gvsig.vectorediting / org.gvsig.vectorediting.app / maven-howto.rst @ 1479

History | View | Annotate | Download (9.62 KB)

1 5 llmarques
2
==================================
3
Usefull maven "howtos" and FAQs
4
==================================
5
6
.. contents::
7
8
How to reduce the process of "install" to run as fast as possible.
9
-------------------------------------------------------------------
10
11
Can reduce install execution skiping test execution and compilation,
12
javadoc generation, test signature checking, license checking, and
13
attach sources in jar.
14
15
  mvn  -Danimal.sniffer.skip=true -Dmaven.test.skip=true -Dsource.skip=true -DskipTests -Dmaven.javadoc.skip=true install
16
17
How to increment the build number of gvSIG plugins
18
----------------------------------------------------
19
20
To increase the build number of gvSIG plugins, yo can do:
21
22
  mvn -Dincrease-build-number process-sources
23
24
How to deploy a package of a gvSIG plugin
25
--------------------------------------------
26
27
Yo can deploy the package of a gvSIG plugin with:
28
29
  mvn -Ddeploy-package -Duser=USER -Dpassword=PASSWORD install
30
31
Notes:
32
- Require that the gvsig.package.info.poolURL property that this set to the correct value.
33
- The process uses WEBDAV to upload the packages, gvspkg and gvspki, and require
34
  access to write in the location specified by gvsig.package.info.poolURL
35
- If "user" or "password" is not present, the process ask its each time it need.
36
- If folder specified in  gvsig.package.info.poolURL does not exist, the process try to create it.
37
- The process create a file "addon-request.txt" in the target with the information to
38
  add to the ticket to request the update of the package in the main repository of
39
  packages of gvSIG.
40
41
How to skip attach sources in jar from command line
42
------------------------------------------------------
43
44
If in the project is enabled by default the generation of jar whith
45
the sources of the project, you can disable this setting the property
46
"source.skip" to true in the command line::
47
48
    mvn -Dsource.skip=true  install
49
50
How to skip test compile from command line
51
--------------------------------------------
52
53
You can skip the compilation of test setting the propety "maven.test.skip"
54
to true in the command line::
55
56
    mvn -Dmaven.test.skip=true  install
57
58
59
How to skip test execution from command line
60
----------------------------------------------
61
62
You can skip the tests execution setting the propety "skipTests" to true
63
in the command line::
64
65
    mvn -DskipTests install
66
67
How to skip javadoc generation from command line
68
--------------------------------------------------
69
70
You can skip the javadoc generation setting the property
71
"maven.javadoc.skip" to true in the command line::
72
73
    mvn -Dmaven.javadoc.skip=true  install
74
75
How to skip test signature cheks from command line
76
---------------------------------------------------
77
78
You can skip the signature check setting the property
79
"animal.sniffer.skip" to true in the command line::
80
81
    mvn -Danimal.sniffer.skip=true install
82
83
How to install a project without install submodules
84
----------------------------------------------------------
85
86
To install a project with submodules and only install the
87
parent project without submodules use the option "--non-recursive" ::
88
89
    mvn --non-recursive install
90
91
92
How to skip test compilation
93
--------------------------------
94
95
To configure a project to don't run the compilation
96
of test you can add to this pom the next configuration of
97
the plugin "maven-compiler-plugin"::
98
99
  <build>
100
    <plugins>
101
      ...
102
      <plugin>
103
        <!-- Skip compilation tests -->
104
        <groupId>org.apache.maven.plugins</groupId>
105
        <artifactId>maven-compiler-plugin</artifactId>
106
        <executions>
107
          <execution>
108
            <id>default-testCompile</id>
109
            <phase>process-test-sources</phase>
110
            <goals>
111
              <goal>testCompile</goal>
112
            </goals>
113
            <configuration>
114
              <skip>true</skip>
115
            </configuration>
116
          </execution>
117
        </executions>
118
      </plugin>
119
      ...
120
    </plugins>
121
  </build>
122
123
Skip test execution
124
----------------------
125
126
To configure a project to don't run the execution
127
of test you can add to this pom the next configuration of
128
the plugin "maven-surefire-plugin"::
129
130
131
  <build>
132
    <plugins>
133
      ...
134
      <plugin>
135
        <!-- Skip test execution -->
136
        <groupId>org.apache.maven.plugins</groupId>
137
        <artifactId>maven-surefire-plugin</artifactId>
138
        <configuration>
139
          <skipTests>true</skipTests>
140
        </configuration>
141
      </plugin>
142
      ...
143
    </plugins>
144
  </build>
145
146
Continue on test failure
147
-----------------------------
148
149
You can configure a project to continue on test execution
150
failure. To do this add to the pom of the project the next
151
configuration of plugin "maven-surefire-plugin" ::
152
153
  <build>
154
    <plugins>
155
      ...
156
      <plugin>
157
        <!-- Continue on test failure -->
158
        <groupId>org.apache.maven.plugins</groupId>
159
        <artifactId>maven-surefire-plugin</artifactId>
160
        <configuration>
161
          <testFailureIgnore>true</testFailureIgnore>
162
        </configuration>
163
      </plugin>
164
      ...
165
    </plugins>
166
  </build>
167
168
169
Set java compatibility
170
--------------------------
171
172
To set the compatibility with a java version  add to the
173
pom of the project the next configuration of plugin
174
"maven-compiler-plugin" ::
175
176
  <build>
177
    <plugins>
178
      ...
179
      <plugin>
180
          <!-- Set java compatibility -->
181
          <groupId>org.apache.maven.plugins</groupId>
182
          <artifactId>maven-compiler-plugin</artifactId>
183
          <configuration>
184
              <source>1.5</source>
185
              <target>1.5</target>
186
              <encoding>ISO-8859-1</encoding>
187
          </configuration>
188
      </plugin>
189
      ...
190
    </plugins>
191
  </build>
192
193
Packaging tests in jar
194
------------------------
195
196
Test classes do not packaging in jar by default.
197
To packing add to pom::
198
199
  <build>
200
    <plugins>
201
      ...
202
      <plugin>
203
        <!-- Packaging tests in jar -->
204
        <groupId>org.apache.maven.plugins</groupId>
205
        <artifactId>maven-jar-plugin</artifactId>
206
        <executions>
207
          <!-- Generates a jar file only with the test classes -->
208
          <execution>
209
            <goals>
210
              <goal>test-jar</goal>
211
            </goals>
212
            <configuration>
213
              <includes>
214
                <include>**/**</include>
215
              </includes>
216
            </configuration>
217
          </execution>
218
        </executions>
219
      </plugin>
220
      ...
221
    </plugins>
222
  </build>
223
224
How to set a dependency with tests jar
225
-----------------------------------------
226
227
You can set a dependency with a test jar adding to
228
the declaration of the dependency the scope of
229
test and the type of "test-jar"::
230
231
  <dependency>
232
      <groupId>...</groupId>
233
      <artifactId>...</artifactId>
234
      <type>test-jar</type>
235
      <scope>test</scope>
236
  </dependency>
237
238
How use ant in maven
239
-------------------------
240
241
You can use ant embed in the pom of you project.
242
To do this use::
243
244
  <plugin>
245
    <artifactId>maven-antrun-plugin</artifactId>
246
    <version>1.7</version>
247
    <executions>
248
      <execution>
249
        <phase>generate-sources</phase>
250
        <configuration>
251
          <target>
252
            <echo>Hello world!</echo>
253
          </target>
254
        </configuration>
255
        <goals>
256
          <goal>run</goal>
257
        </goals>
258
      </execution>
259
    </executions>
260
  </plugin>
261
262
Fail when execute "mvn deploy" with "No connector available"
263
-------------------------------------------------------------
264
265
When execute a "mvn deploy" fail with the error::
266
267
  [INFO] ------------------------------------------------------------------------
268
  [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy
269
    (default-deploy) on project org.gvsig.desktop: Failed to deploy artifacts/metadata:
270
    No connector available to access repository gvsig-repository (dav:https://devel.gvsig.org/m2repo/j2se)
271
    of type default using the available factories WagonRepositoryConnectorFactory -> [Help 1]
272
  [ERROR]
273
274
This happens to be configured the webdav wagon as an extension in the section "build"::
275
276
  ...
277
  <build>
278
    <extensions>
279
        <extension>
280
            <groupId>org.apache.maven.wagon</groupId>
281
            <artifactId>wagon-webdav-jackrabbit</artifactId>
282
            <version>1.0-beta-7</version>
283
        </extension>
284
    </extensions>
285
  ...
286
287
Fail when execute "mvn release: prepare" with "svn command failed... Could not authenticate"
288
------------------------------------------------------------------------------------------------
289
290
When running "mvn release: prepare" updates poms, compiles, and then
291
fails with the following error ::
292
293
  [INFO] ------------------------------------------------------------------------
294
  [ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.1:prepare
295
    (default-cli) on project org.gvsig.desktop: Unable to commit files
296
  [ERROR] Provider message:
297
  [ERROR] The svn command failed.
298
  [ERROR] Command output:
299
  [ERROR] svn: Commit failed (details follow):
300
  [ERROR] svn: MKACTIVITY of '/svn/gvsig-desktop/!svn/act/931a27bc-57e8-45d9-adcd-5a2cf54a7045':
301
    authorization failed: Could not authenticate to server: rejected Basic challenge (https://devel.gvsig.org)
302
  [ERROR] -> [Help 1]
303
  [ERROR]
304
  [ERROR]
305
306
Apparently maven in linux system use the svn of system and if you're not
307
authenticated when trying to access to the repository, svn fails.
308
309
This is solved by executing a commit from the command line on
310
some file of the project (only if you have not enabled the option
311
"store-passwords = no" in $ HOME / .subversion / config). For example, you
312
can add or remove at the end of "pom.xml" a blank line and then run
313
from the command line ::
314
315
  svn ci -m "" pom.xml
316
317
Another option that works on Windows in declaring the user and password in the command:
318
319
mvn release:prepare -Dusername=[username] -Dpassword=[password]
320