maven配置: 生成war的同时生成jar, 并在其他artifact配置依赖于这个jar

方法一 :使用 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>
原文地址:https://www.cnblogs.com/wangqianbo/p/3572512.html