我来自Gradle,我正在将我的一个项目切换到Maven。Gradle为那些具有<scope>compile</scope>的依赖项自动创建了jar,但似乎Maven没有这样做?有没有办法告诉Maven为我的作用域编译依赖项创建jars?
下面是我的pom.xml的一个片段,我希望在我的target文件夹中的某个地方为它创建jars
<dependencies>
<dependency>
<groupId>com.yubico</groupId>
<artifactId>yubico-validation-client2</artifactId>
<version>3.0.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.unboundid</groupId>
<artifactId>unboundid-ldapsdk</artifactId>
<version>4.0.8</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.mashape.unirest</groupId>
<artifactId>unirest-java</artifactId>
<version>1.4.9</version>
<scope>compile</scope>
</dependency>
<dependencies>发布于 2019-01-09 07:54:39
看起来没有办法像Gradle那样优雅地处理这个问题。我必须使用maven-dependency-plugin手动导入依赖项,以便为启动应用程序时发现需要的每个依赖项创建jars (即所有具有compile作用域的依赖项)。
因此,对于<dependency>作用域compile的每个块,我必须在maven-dependency-plugin中使用<artifactItem>,下面是一个滚动条的示例:
<dependency>
<groupId>com.rollbar</groupId>
<artifactId>rollbar-java</artifactId>
<version>1.4.0</version>
<scope>compile</scope>
</dependency>这是对我有效的方法:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.1</version>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy</goal>
</goals>
</execution>
</executions>
<configuration>
<artifactItems>
<artifactItem>
<groupId>com.rollbar</groupId>
<artifactId>rollbar-java</artifactId>
<version>1.4.0</version>
<type>jar</type>
</artifactItem>
</artifactItems>
</configuration>
</plugin>https://stackoverflow.com/questions/54097718
复制相似问题