使用IDEA和maven2,如何添加非maven .jar?

时间:2010-07-14 02:12:01

标签: java maven-2 intellij-idea

我想在我的IDEA Web应用程序项目中包含一个使用maven2(pom.xml)的.jar。

如何在不使用maven的项目中添加.jar?

5 个答案:

答案 0 :(得分:6)

最简单的方法是使用maven:install-file在本地存储库中安装jar,如下所示(从the docs窃取:

mvn install:install-file -Dfile=path-to-non-maven.jar \
                      -DgroupId=some-id \
                      -DartifactId=some-artifact \
                      -Dversion=some-version \
                      -Dpackaging=jar

然后将其添加到您的POM中,就像任何其他依赖项一样。如果需要与很多人共享,您可以考虑设置NexusArtifactory之类的本地实例(我们在工作中使用Artifactory并且效果很好)。

答案 1 :(得分:6)

你基本上有三个选择:

  • 使用install:install-file在您的本地存储库中安装jar(请参阅Guide to installing 3rd party JARs)。这非常简单易行,但这会使您的POM无法移植。如果您独自一人并且不打算分发您的pom.xml,这可能是一个选项。

  • 使用deploy:deploy-file在公司存储库中部署jar。这当然是企业环境中的理想和首选方案。

  • 如果您没有使用公司存储库但仍在团队中工作,setup a file based repository并通过源存储库共享它。

答案 2 :(得分:5)

Google addjars maven插件是一个好主意。这可以通过以下步骤完成:

  1. 将所有依赖项添加到lib文件夹代码库。

  2. 将Google addjars插件添加到<build>

    <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>${basedir}/lib</directory>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    
  3. mvn compile现在将创建一个本地仓库,并将所有jar作为依赖项添加。然后mvn compile将成为魅力。

  4. 让想法解决依赖关系转到module settings -> modules -> dependencies添加lib文件夹。

  5. 参考:https://code.google.com/archive/p/addjars-maven-plugin/issues

答案 3 :(得分:0)

试着猜出问题是什么:

1)你有一个带有jar foo.jar的maven项目A. 2)你有一个非maven项目B,你想使用相同的jar(不使用maven)
3)你在窗户上?

如果是这样,那么:

c:\documents and settings\your_username\.m2\name_of_jar,抓取jar并将其粘贴在项目B的WEB-INF / lib目录中

答案 4 :(得分:0)

maven install:install-file非常适合在您的缓存中添加本地JAR,但如果您在外部使用存储库(即Archiva或Nexus),那么最好将其提供给所有人“ mvn deploy:deploy-file“ - 该命令的类似参数。

只在本地安装意味着如果你出于某种原因清除你的本地缓存(我已经多次这样做以解决本地缓存损坏的这个或那个问题),那么你也松开了本地JAR,需要记住再次重新添加它。如果它通过Nexus或Archiva在本地DSL存储库中,那么你的状态很好 - 只需将生成的groupId,artifactId添加到POM中并继续。