Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 构建独立于IDE的Maven项目(特别是ecplise)_Java_Maven_Tomcat_Intellij Idea_Gradle - Fatal编程技术网

Java 构建独立于IDE的Maven项目(特别是ecplise)

Java 构建独立于IDE的Maven项目(特别是ecplise),java,maven,tomcat,intellij-idea,gradle,Java,Maven,Tomcat,Intellij Idea,Gradle,我继承了一个.Net/Java项目组合,其中有不同的“模块”,有些模块依赖于其他模块,有些是独立的。这不是一个真正的多模块项目(没有聚合器POM) 我正在使用Intellij(community)编译/调试这些,但我无法做到这一点,之前这些都是使用Eclipse(.classpath、.project)制作的,现在团队(管理层)希望转到Intellij和VSTS CI 更多信息 Web应用程序打包为war,并在windows上使用WIX部署到Tomcat 应用程序使用一些自定义JAR(没有可用的

我继承了一个.Net/Java项目组合,其中有不同的“模块”,有些模块依赖于其他模块,有些是独立的。这不是一个真正的多模块项目(没有聚合器POM)

我正在使用Intellij(community)编译/调试这些,但我无法做到这一点,之前这些都是使用Eclipse(.classpath、.project)制作的,现在团队(管理层)希望转到Intellij和VSTS CI

更多信息

  • Web应用程序打包为war,并在windows上使用WIX部署到Tomcat
  • 应用程序使用一些自定义JAR(没有可用的源代码)
  • 我被要求避免使用本地存储库
  • Maven网站/Github上的多模块项目未编译/需要 让我为每个依赖的java项目使用
    mvn clean install
  • 所有java项目都是带有POM.XML的maven项目
  • 问题:

  • 如何使用此结构创建多模块项目(可以 也可以在intellij/Eclipse中导入)

  • 如何使用Maven/Intellij compile/debug编译生成的多模块项目

  • 格拉德尔在这里更合适吗

  • 作为一名新的Java程序员,当您无法与创建它的人连接/交谈时,更改和部署现有的设置变得非常困难:(。
    任何帮助/指导/建议都会非常有用

    项目结构(JAVA)

  • 我认为您最好的选择是以最标准的方式创建聚合器项目(例如,遵循此处的建议:); 如果您是maven新手,这可能看起来很吓人,但这可能只有一个文件(甚至可以在您的一个项目中的子文件夹中,尽管我不建议这样做,建议使用自己的项目)。拥有聚合器将对依赖于其他模块的模块有很大帮助,等等。 生成的聚合项目可以在Eclipse/IntelliJ中轻松导入(例如,Eclipse有一个特性,它知道从pom.xml导入/创建项目文件;IntelliJ有一个类似的特性)
  • 结果项目(如果设置正确)可以通过默认的maven生命周期进行编译/打包,或者
    mvn compile
    mvn package
    。显然,您也可以通过IDE运行东西,但您可能需要一些额外的工作(设置运行时/服务器等)。 例如,我通过maven为
    CI
    构建项目,但出于开发目的,我也通过eclipse运行它们
  • 您刚刚描述了我认为是多模块项目的典型用例;您要求的是一个固执己见的答案,最终归结为“这取决于您喜欢什么”.我个人不认识Gradle,但我在你的描述中没有看到奇怪的元素。因此,我认为如果你的团队成员对Gradle vs Maven等有更好的了解,你可以使用Gradle
  • 需要考虑的其他事项:

    • 关于应用程序自定义JAR:如果它们不存在于Maven Central repository中,或者提供者的某个存储库中,并且如果您希望避免使用本地存储库,那么您可以在项目中包含一个存储库;这基本上只是本地Maven存储库的一种风格,其独特的优点是可以随您一起打包r项目和其他开发人员不需要执行额外的步骤(也就是说,他们不需要执行向本地回购添加工件的额外步骤)。有些人不喜欢这种方法,但如果您的“无本地回购;无公司回购”约束是不可移动的,那么我看不到任何其他方法
    • 我不太明白你在这里说什么:
    Maven网站/Github上的多模块项目未编译/需要 让我为每个依赖的java项目使用mvn clean install

    我将假设你的意思是你在某处发现了一些多模块的示例,但它对你不起作用。没有具体的例子,我无法真正发表评论,只是提到我在过去(和现在)使用过多模块构建,它们对我来说很好。 关于您对
    mvn clean install
    ——这是一个maven命令,用于将项目/模块的工件安装到本地存储库中,实际上并不需要,除非这些工件需要由当前多模块构建外部的项目使用

    C:\SomeProj\
    ├── Jars
    |  ├── Java
    |  |    └── extJar2.jar
    |  |    └── extJar3.jar
    |  |    └── extJar4.jar
    |  |    └── extJar5.jar
    |  |    └── javax.servlet-3.0.jar (Why is this externally required)
    |  └── SomeFolder1
    |  |    └── extJar1.jar
    ├── Source
    |  ├── Common
    |  |  ├── DAL (JAVA - jar) [Depends On Logger]
    |  |  ├── Logger (JAVA - Jar)
    |  ├── API
    |  |  ├── DataInput
    |  |  |  ├── InfoPuller (JAVA - Jar) [Depends On Logger]
    |  |  ├── Info
    |  |  |  └── MyWebApi (JAVA-WAR) [Depends On DAL and Logger]{Application to Build/Run/Deploy from Intellij/MAVEN}
    |  |  └── Util
    |  |     └── JobManager (JAVA - Jar) [Depends On Logger]
    |  └── WebApp (Js App) {FrontEnd}