Suppose I have a war and jar projects defined in maven.
The Jar project is dependent on the War project
I have managed to get this working in package mode by adding
In the war project <attachClasses>
to true in the war plugin.
And making a dependency to
<groupId>com</groupId>
<artifactId>oneway-delegator</artifactId>
<version>1.0</version>
开发者_运维问答 <classifier>classses</classifier>
in the jar pom.
But when running only compile the classes jar is not created and everything fails.
Any ideas folks ??
But when running only compile the classes jar is not created and everything fails.
You can indeed configure the maven-war-plugin to package/deploy the classes and resources included in your webapp as an "attached" JAR artifact with a classifier with the following configuration:
<project>
...
<artifactId>mywebapp</artifactId>
<version>1.0-SNAPSHOT</version>
...
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>X.Y</version>
<configuration>
<attachClasses>true</attachClasses>
</configuration>
</plugin>
</plugins>
</build>
...
</project>
But this artifact is created during the package
phase so don't expect it to be there if you run compile
only.
Note that this configuration option has been introduced for a very particular use case, the skinny war use case. If you need to re-use this JAR in another project the recommended approach is in general to move the classes to a separate module that builds a JAR, and then declare a dependency on that JAR from your webapp as well as from any other projects that need it.
Don't do this.
That is not an acceptable dependency to make a jar (plain java code) dependent on a war (Java EE specific application package). If you have code in your war that you are dependent on, then that code should be in it's own jar and then both the web app and the jar project would have a common dependency on it.
精彩评论