Maven很棒。通过在pom
配置中指定依赖包的版本,并自动应用它们,通常可以使我摆脱jar依赖。它还通过m2e与Eclipse进行了很好的集成,因此在IDE中可以无缝运行。
这对于Maven全局已知的依赖项都非常有用。但是,有时,某些项目需要包含在Maven仓库中不可用的项目中。在这种情况下,我通常将它们添加到lib/
项目中的目录中。只要它们在类路径中,就可以编译。
但是,问题在于在导入项目时会自动将它们包括在内。我已经忍受了半生不熟的修复程序和hacks这个问题,时间太长了。每次有人安装该项目时,我都必须告诉他们将jar手动添加lib/
到其Eclipse构建路径中,以便消除所有错误。类似于以下内容:
我正在寻找一种可以与mvn
命令行程序和Eclipse 一起使用的方式来自动执行此过程的方法:更多地强调Eclipse,因为导入时仅编译它们的项目真是太好了。
我不想为此设置回购服务器,也没有任何内部专有组件可以保证在本地进行任何设置。我只有一些jar文件,开发人员不使用Maven。我想和他们一起编译...我应该能够将它们包括在我的软件发行版中,对吗?
我确实在寻找一种合理的方法来实现这一点,该方法也可以在Eclipse中正常使用。这是我发现有希望的一种解决方案,但似乎绝对没有解决此问题的权威方法。唯一接近的另一件事是maven-addjars-plugin,它可以正常工作,但仅在命令行上有效。这个插件还不错,并且配置合理:
<plugin>
<groupId>com.googlecode.addjars-maven-plugin</groupId>
<artifactId>addjars-maven-plugin</artifactId>
<version>1.0.5</version>
<executions>
<execution>
<goals>
<goal>add-jars</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>${project.basedir}/lib/java-aws-mturk</directory>
</resource>
<resource>
<directory>${project.basedir}/lib/not-in-maven</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
但是,要使其在Eclipse中运行,涉及将以下有关生命周期映射的混乱添加到您的pom.xml
,我从未尝试过。我什至不认为它实际上配置为向Eclipse构建路径添加任何内容。
<pluginManagement>
<plugins>
<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>
com.googlecode.addjars-maven-plugin
</groupId>
<artifactId>
addjars-maven-plugin
</artifactId>
<versionRange>
[1.0.5,)
</versionRange>
<goals>
<goal>add-jars</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
1)您可以使用系统范围依赖性
<dependency>
<groupId>test</groupId>
<artifactId>x</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${basedir}/lib/x.jar</systemPath>
</dependency>
2)您可以将x.jar复制为本地Maven存储库
仓库/测试/x/1.0/x-1.0.jar
并添加一个依赖项
<dependency>
<groupId>test</groupId>
<artifactId>x</artifactId>
<version>1.0</version>
</dependency>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句