我正在使用Maven 3.3.9。我正在创建一个耳朵项目,并在我的POM中指定了这一点...
<packaging>ear</packaging>
我想使用" Skinnywars"选项,在我的耳朵中包装的战争文件参考了耳朵内部的一组库,而不是每个库都有自己的罐子的副本。因此,例如,在我的依赖项部分中,我有
之类的东西 <dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${version.mysql}</version>
</dependency>
我有以下Maven-Ear-Plugin配置设置
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<artifactId>maven-ear-plugin</artifactId>
<version>2.10.1</version>
<configuration>
<finalName>${project.artifactId}</finalName>
<version>5</version>
<generatedDescriptorLocation>${basedir}/src/main/application/META-INF</generatedDescriptorLocation>
<configuration>
<defaultLibBundleDir>lib/</defaultLibBundleDir>
<skinnyWars>true</skinnyWars>
</configuration>
<modules>
<webModule>
<groupId>org.mainco.subco</groupId>
<artifactId>moduleA</artifactId>
<uri>moduleA.war</uri>
<bundleFileName>moduleA.war</bundleFileName>
<contextRoot>/moduleA</contextRoot>
</webModule>
<webModule>
<groupId>org.mainco.subco</groupId>
<artifactId>moduleC</artifactId>
<uri>moduleC.war</uri>
<bundleFileName>moduleC.war</bundleFileName>
<contextRoot>/moduleC</contextRoot>
</webModule>
<webModule>
<groupId>org.mainco.subco</groupId>
<artifactId>moduleB</artifactId>
<uri>moduleB.war</uri>
<bundleFileName>moduleB.war</bundleFileName>
<contextRoot>/moduleB</contextRoot>
</webModule>
<webModule>
<groupId>org.mainco.subco</groupId>
<artifactId>moduleD</artifactId>
<uri>moduleD.war</uri>
<bundleFileName>moduleD.war</bundleFileName>
<contextRoot>/moduleD</contextRoot>
</webModule>
</modules>
</configuration>
</plugin>
但是当我运行
时mvn clean install
尽管我看到输出中的行,例如
[INFO] Copying artifact [jar:mysql:mysql-connector-java:5.1.22] to [mysql-connector-java-5.1.22.jar]
共享JAR文件" mysql-connector-java-5.1.22.jar"是耳朵的根,而不是我的配置中指定的" lib"目录。实际上,根本没有创建" LIB"目录。更糟糕的是,包装在耳朵内的战争档案仍然包含我自己希望分享的库的副本。为什么我目前的" Skinnywar"配置不起作用,我需要进行哪些调整才能以便它?
您应该像这样更改配置:
<plugin>
<artifactId>maven-ear-plugin</artifactId>
<version>2.10.1</version>
<configuration>
<finalName>${project.artifactId}</finalName>
<version>5</version>
<generatedDescriptorLocation>${basedir}/src/main/application/META-INF</generatedDescriptorLocation>
<defaultLibBundleDir>lib/</defaultLibBundleDir>
<skinnyWars>true</skinnyWars>
<modules>
<webModule>
<groupId>org.mainco.subco</groupId>
<artifactId>moduleA</artifactId>
<uri>moduleA.war</uri>
<bundleFileName>moduleA.war</bundleFileName>
<contextRoot>/moduleA</contextRoot>
</webModule>
<webModule>
<groupId>org.mainco.subco</groupId>
<artifactId>moduleC</artifactId>
<uri>moduleC.war</uri>
<bundleFileName>moduleC.war</bundleFileName>
<contextRoot>/moduleC</contextRoot>
</webModule>
<webModule>
<groupId>org.mainco.subco</groupId>
<artifactId>moduleB</artifactId>
<uri>moduleB.war</uri>
<bundleFileName>moduleB.war</bundleFileName>
<contextRoot>/moduleB</contextRoot>
</webModule>
<webModule>
<groupId>org.mainco.subco</groupId>
<artifactId>moduleD</artifactId>
<uri>moduleD.war</uri>
<bundleFileName>moduleD.war</bundleFileName>
<contextRoot>/moduleD</contextRoot>
</webModule>
</modules>
</configuration>
</plugin>