方法一 :使用 attachClasses 和
<classifier>classes</classifier>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<attachClasses>true</attachClasses>
</configuration>
</plugin>
将会同时生成foo.war和foo-classes.jar。
在另一个artifact的pom.xml中加入对这个jar的依赖:
<dependency>
<groupId>bar</groupId>
<artifactId>foo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<classifier>classes</classifier>
</dependency>
方法二
同时使用 maven-war-plugin 和maven-jar-plugin 并把jar plugin放在war后面,这样就可以把jar install
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>ict.ada</groupId> <artifactId>ada-main</artifactId> <version>0.0.2-SNAPSHOT</version> </parent> <artifactId>ada-gdb-rest</artifactId> <dependencies> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-core</artifactId> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase</artifactId> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-server</artifactId> <version>${jersey.version}</version> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-json</artifactId> <version>${jersey.version}</version> </dependency> <dependency> <groupId>com.sun.jersey.contribs</groupId> <artifactId>jersey-spring</artifactId> <version>${jersey.version}</version> </dependency> <dependency> <groupId>commons-digester</groupId> <artifactId>commons-digester</artifactId> <version>1.8</version> </dependency> <dependency> <groupId>ict.ada</groupId> <artifactId>ada-common</artifactId> </dependency> <dependency> <groupId>ict.ada</groupId> <artifactId>ada-gdb</artifactId> </dependency> <dependency> <groupId>cn.golaxy</groupId> <artifactId>dtsearch2</artifactId> <version>2.0</version> </dependency> <dependency> <groupId>ict.ada</groupId> <artifactId>community-find</artifactId> <version>1.0.0</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.21</version> </dependency> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-core</artifactId> <version>4.0.0</version> </dependency> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>2.11.3</version> </dependency> </dependencies> <properties> <jdkLevel>1.6</jdkLevel> <jetty.version>6.1.18</jetty.version> <jersey.version>1.8</jersey.version> </properties> <build> <plugins> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>maven-jetty-plugin</artifactId> <version>${jetty.version}</version> <configuration> <reload>manual</reload> <stopKey>stop</stopKey> <stopPort>9966</stopPort> </configuration> </plugin> <!-- put aside some unwanted jars from war... --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.3</version> <configuration> <warName>ada</warName><!-- war packege name --> <packagingExcludes>WEB-INF/lib/log4j*.jar,WEB-INF/lib/slf4j-api*.jar,WEB-INF/lib/xml-apis*.jar,WEB-INF/classes/*.properties</packagingExcludes> </configuration> <executions> <execution> <id>ada-gdb-rest</id> <phase>package</phase> <goals> <goal>war</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.3</version> <configuration> <excludes> <exclude>**/*.xml</exclude> </excludes> </configuration> <executions> <execution> <id>make-a-jar</id> <phase>package</phase> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> <!-- <plugin> --> <!-- <groupId>org.apache.maven.plugins</groupId> --> <!-- <artifactId>maven-dependency-plugin</artifactId> --> <!-- <executions> --> <!-- <execution> --> <!-- <id>copy-dependencies</id> --> <!-- <phase>install</phase> --> <!-- <goals> --> <!-- <goal>copy-dependencies</goal> --> <!-- </goals> --> <!-- <configuration> --> <!-- <includeGroupIds></includeGroupIds> --> <!-- <outputDirectory>${project.build.directory}/lib</outputDirectory> --> <!-- <overWriteReleases>false</overWriteReleases> --> <!-- <overWriteSnapshots>true</overWriteSnapshots> --> <!-- <overWriteIfNewer>true</overWriteIfNewer> --> <!-- <excludeScope>provided</excludeScope> --> <!-- </configuration> --> <!-- </execution> --> <!-- </executions> --> <!-- </plugin> --> </plugins> </build> </project>