2015-10-16 161 views
1

我有第三方依赖关系jar需要安装以构建我的项目。我知道这可以使用安装命令来完成,但我需要的是在构建项目时进行安装。所以不需要手动安装jar,有没有办法做到这一点?Maven在构建过程中安装第三方依赖关系

我发现像这样安装插件

<configuration> 
<executable>mvn</executable> 
<arguments> 
    <argument>install:install-file</argument> 
    <argument>-Dfile=${basedir}\src\main\resources\EVIPSoapServer.jar</argument> 
    <argument>-DgroupId=com.company</argument> 
    <argument>-DartifactId=EVIPSoapServer</argument> 
    <argument>-Dversion=1.0.0</argument> 
    <argument>-Dpackaging=jar</argument> 
</arguments> 

是否有安装依赖的方式?

+1

是否有任何理由为什么你不能依赖这个离线安装,然后你的构建过程中使用它的解决方案? –

+1

@TimBiegeleisen它可以完成,但我只是为了维护的原因。因此,安装依赖关系的手动过程可以被跳过,当构建项目时,所有的jar都将被自动安装。是否有可能在maven pom配置中做到这一点? –

+0

[Maven documentation](https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html)在这里似乎没有任何帮助。 –

回答

1

更好的方法是创建一个多模块maven项目,将第三方库作为一个模块,将项目作为另一个模块。在根pom.xml中,您可以编写构建序列,并在安装项目之前负责安装第三方jar。

这里是一个教程,你Link 1

编辑

从评论,好像你只需要依赖的jar可用在安装。为此,最好的方法是使用系统范围的依赖关系,将第三方jar保存在maven项目结构本身的文件夹中。示例如下。阅读link。这样,maven就不会检查jar是否存在于本地或远程的maven仓库中。

<dependency> 
     <groupId>javax.sql</groupId> 
     <artifactId>jdbc-stdext</artifactId> 
     <version>2.0</version> 
     <scope>system</scope> 
     <systemPath>${your.path.here}</systemPath> 
    </dependency> 
+0

嗯,我只有罐子,是否有可能将罐子添加为模块? –

+1

编辑答案。您可以使用系统范围的依赖关系。确保该jar在你的项目中。 lib中的某处。 – aksappy

+0

我试过这个选项,在这个改变后我的项目编译好了。但在运行时抛出异常,我得到了NoClassDefFoundError。我在这里做错了什么? –