2016-11-05 81 views
0

我试图编译一个项目,它有Maven依赖项和正常的依赖项(你将添加到你的buildpath/lib的.jar项目)。但是,我只能选择一个(不是,我编译与Maven,或者我跟文物编译,不会使项目工作Java:Maven和图书馆编译

我用

<build> 
    <plugins> 
     <plugin> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <configuration> 
       <archive> 
        <manifest> 
         <mainClass>me.expdev.testproject.Main</mainClass> 
        </manifest> 
       </archive> 
       <descriptorRefs> 
        <descriptorRef>jar-with-dependencies</descriptorRef> 
       </descriptorRefs> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

mvn clean compile assembly:single 

编译,但我也有5罐(这不能作为Maven的),我需要包括在包装罐子输出!当我在IDE中运行主营它工作正常。

我用的IntelliJ COMMUN ity版。

回答

0

您可以将第三方jar打包为Maven工件。

mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \ 
-DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=jar 

<group-id><artifact-id><version>领域是完全由你来填写,选择,似乎适合于您的值。这些值可以让Maven使用这个神器。有关示例,请参阅项目中已有的其他Maven构件。对于组ID,请选择一些前缀以明确它不是公开发布的jar,以避免混淆。例如custom.,如custom.some.package,但这真的取决于你。

有关详细信息,请参阅:Guide to installing 3rd party JARs

也请记住,其他开发谁想要使用的项目将不得不这样做,并在他们的本地Maven仓库手动安装的罐子。另一个选择是运行你自己的Maven仓库。看到这篇文章:http://stuartsierra.com/2009/09/08/run-your-own-maven-repository

+0

我的maven项目的组ID?你可以填写参数作为例子吗?我试过'mvn install:install-file -Dfile = customizer.jar -DgroupId = me.expdev -DartifactId = testproject -Dversion = 1.0-SNAPSHOT '但是它说我丢包装,这是什么? – ExpDev

+0

我添加了更多信息。对于包装,请使用'jar'。 – janos

+0

'[错误]未能在项目testproject上执行目标:无法解析项目的依赖关系me.expdev:testproject:jar:1.0-SNAPSHOT:以下工件无法解析:me.expdev:customizer:jar:1.0,me .expdev:jmf:jar:1.0,me.expdev:mediaplayer:j ar:1.0,me.expdev:multiplayer:jar:1.0,me.expdev:sound:jar:1.0:找不到me.expdev:customizer:在https://raw.github.com/kristian/system-hook/mvn-repo/中的jar:1.0被缓存在本地仓库中,直到系统挂钩mvn-repo更新后才会重新解析分辨率已经过去或更新被强制 - > [帮助1 ' – ExpDev