Java Maven extract jar,使用依赖项编译新的

Java Maven extract jar,使用依赖项编译新的,java,maven,Java,Maven,我有一个第三方jar,其中包含我已添加到本地repo的源文件。现在我想提取它,用它的依赖项编译它,最后把它打包成一个新的jar 通过使用maven依赖插件,我完成了第一步。它将jar从repo提取到目标/源中 如何设置编译器阶段以在编译期间包含该目录?我希望它一开始会产生错误,因为它还有其他依赖项,而不是pom.xml中的依赖项 我遇到过汇编插件,但我不确定它是否会取代编译器插件?Q:为什么不获取第三方库的编译版本(jar,包含编译的Java代码(*.class文件)) Q:第三方源代码是否可以

我有一个第三方jar,其中包含我已添加到本地repo的源文件。现在我想提取它,用它的依赖项编译它,最后把它打包成一个新的jar

通过使用
maven依赖插件
,我完成了第一步。它将jar从repo提取到
目标/源中

如何设置编译器阶段以在编译期间包含该目录?我希望它一开始会产生错误,因为它还有其他依赖项,而不是
pom.xml
中的依赖项


我遇到过汇编插件,但我不确定它是否会取代编译器插件?

Q:为什么不获取第三方库的编译版本(jar,包含编译的Java代码(
*.class
文件))

Q:第三方源代码是否可以从svn/git/etc获得

Q:源jar或svn/git scm是否包含Maven
pom.xml
文件,或Ant
build.xml
或Gradle
build.Gradle
?然后用它来编译代码

关于Maven插件

  • 用于创建存档文件,如zip
    *.tar.gz`等
  • 用于编译(Java)源代码

听起来你想把你的应用程序和它的所有相关jar文件捆绑到一个jar中。对吗?如果是这样,请查看Maven assembly插件,特别是assembly:single goal。这些不是真正的编译阶段操作,而是打包阶段操作。基本上是的,但奇怪的是我认为我也应该编译第三方源代码。因为我在解析IDE(IntelliJ)中的符号时遇到问题。看到这个问题,除非您需要更改源代码或者没有库的二进制文件,否则您不需要编译第三方源代码。无论哪种情况,Maven的方法都是使用自己的pom.xml将第三方源代码构建到工件中。然后将该工件作为依赖项包含在主项目pom中。您的源文件不存在于目标下的子目录中。我希望源文件用于调试。编译的jar和捆绑的jar都是可用的。它们都不包含任何构建文件,比如Maven或Ant。通常情况下,您不需要对源jar执行任何操作。使用Eclipse或IntelliJ时,用于创建项目、添加已编译的JAR;使用Maven或Gradle设置自己的项目时,将自动将依赖项作为已编译JAR和源JAR导入。确实,源jar对调试很有好处。请参阅我上面的评论。这里再次粘贴:奇怪的是,我认为我也应该编译第三方源代码。因为我在解析IDE(IntelliJ)中的符号时遇到问题。看这个问题@hajder这是正确的答案。这里的关键词是编译的。您是否有用于尝试使用的第三方软件的二进制文件(.class文件)?如果没有,你有选择。1) 在项目树中包含库的源代码,并将其与源代码一起编译。2) 将库视为一个单独的maven项目,单独构建它,然后在.pom文件中添加依赖项3)找到库的二进制发行版并依赖于该.jar。