标签: multi-module

具有多模块项目的Maven阶段订单?

原谅我.我是Maven的菜鸟.

这是我的maven项目目录:

project/
    pom.xml
    moduleA/
    moduleB/
        sub-moduleA/
        sub-moduleB/
        sub-moduleC/
    moduleC/
Run Code Online (Sandbox Code Playgroud)

当然,在每个模块和子模块中,它们都有自己的模块和子模块pom.xml.此外,在此示例中moduleB取决于moduleAmoduleA取决于moduleC.我知道在maven中它经历了多个阶段,但是它每次只需要一个阶段,或者每个阶段一个.眼下,只有三个阶段,我关心的是compile,packageinstall.

例如:

是否在订单1中执行此操作:

compile moduleC
compile moduleA
compile moduleB
package moduleC
package moduleA
package moduleB
install moduleC
install moduleA
install moduleB
Run Code Online (Sandbox Code Playgroud)

或者它是在第2顺序中执行的:

compile moduleC
package moduleC
install moduleC
compile moduleA
package moduleA
install moduleA
compile moduleB
package moduleB
install moduleB
Run Code Online (Sandbox Code Playgroud)

或者它是以完全不同的顺序进行的,还是我完全脱离了对maven的理解?

我正在运行Maven 2.2.1.谢谢!

maven-2 maven multi-module

6
推荐指数
1
解决办法
1736
查看次数

Jenkins/Maven因"无法在反应堆中找到所选项目"错误而建立死亡

我在Cloudbees构建服务上使用Jenkins,并且有一个多模块Maven项目.最近,我们从父pom中删除了一个项目,但是,当我们使用以下选项在Jenkins中运行构建时...

clean install -e -P qa -P cloudbees -DskipITs
Run Code Online (Sandbox Code Playgroud)

工件会自动存储到附加到我们帐户的Cloudbees快照存储库中.但是,构建最终会失败,并显示以下"无法在reactor中找到所选项目:org.mainco.subco:oldmodule"错误.有没有办法强制构建

[subco] $ mvn initialize -N
[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building subco 76.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.841s
[INFO] Finished at: Fri Feb 27 21:59:22 UTC 2015
[INFO] Final Memory: 5M/115M
[INFO] ------------------------------------------------------------------------
Parsing POMs
Modules changed, recalculating dependency graph
maven31-agent.jar already up to date
maven31-interceptor.jar already up to date
maven3-interceptor-commons.jar already up to date
[subco] $ /opt/jdk/jdk1.7.0/bin/java -Dmaven.test.failure.ignore=false …
Run Code Online (Sandbox Code Playgroud)

reactor maven multi-module jenkins cloudbees

6
推荐指数
1
解决办法
4030
查看次数

Gradle 多模块项目无法解析依赖子模块的类

该应用程序在 Eclipse 中运行良好。但我无法通过 gradle ( gradle clean build)构建应用程序

结构如下:

financial-calculator(家长)

  • library
  • api

api想要使用的类library

我父母的settings.gradle档案:

rootProject.name = 'financial-calculator'

include 'library'
include 'api'  

rootProject.children.each { it.name = rootProject.name + '-' + it.name }
Run Code Online (Sandbox Code Playgroud)

build.gradle文件:

buildscript {
    ext {
        springBootVersion = '2.0.3.RELEASE'
    }
    repositories {
        mavenLocal()
        mavenCentral()
    }
    dependencies {
        classpath "o.s.b:spring-boot-gradle-plugin:${springBootVersion}"
    }
}

allprojects {
    apply plugin: 'eclipse'
    apply plugin: 'maven'
    apply plugin: 'maven-publish'

    group = 'net.hemisoft.financial.calculator'
    version = "0.1.0-SNAPSHOT"
}

subprojects {
    apply …
Run Code Online (Sandbox Code Playgroud)

groovy dependencies gradle multi-module

6
推荐指数
0
解决办法
469
查看次数

Gradle 5 Kotlin DSL:多模块项目中的常见任务和Maven工件

我真的很想特别喜欢Gradle 5和新的Kotlin DSL的结合,但是我很难(很容易)获得一个非常,非常简单且通用的Gradle运行版本。

任务

在Maven默认目录布局中以简单的Gradle构建(即DRY)的形式发布具有几个相互依赖的子模块的Java库作为高质量的Maven工件/存储库

因此:有一个根项目作为伞,该根项目定义并包含所有通用配置(实际上是所有依赖项除外)。

我目前的挣扎

我将当前的“结果”移植到Github的示例项目中,并且已经在Gradle论坛中提出了这个问题

目前,我无法声明在中央构建中提供标准-sources-javadoc工件的必要任务。

例如,在寻找基于Kotlin DSL的解决方案时会发现这三个“解决方案” 在多模块场景中都不起作用(更长)

解决方案不完整(/build.gradle.kts

完整示例参见Github:https : //github.com/bentolor/gradle-maven-multimodule-kotlindsl

subprojects {
    apply(plugin = "java-library")
    apply(plugin = "maven-publish")
    group = "de.bentolor.sampleproject"
    version = "0.1.0"

    repositories {
        jcenter()
    }

    dependencies {
        // Dependencies used in EVERY module
        "compile"("commons-logging:commons-logging:1.2")
        "testImplementation"("junit:junit:4.12")
    }

    tasks { …
Run Code Online (Sandbox Code Playgroud)

java gradle maven multi-module gradle-kotlin-dsl

6
推荐指数
1
解决办法
1070
查看次数

如何在其中一个模块中没有主类的情况下构建多模块 Maven 项目

我一直试图在类似的问题中找到这个问题的答案,但我仍然不知道是什么导致了它。

我有一个多模块 maven 项目,我正在尝试运行mvn install或者mvn package我收到以下错误

[信息] 应用程序 ..................................... ..... 成功 [1.025 秒]

[信息] 模块数据 ..................................... FAILURE [ 0.952 s]

[INFO] module-app ...................................... 跳过

[ERROR] 无法执行目标 org.springframework.boot:spring-boot-maven-plugin:2.1.1.RELEASE:repackage (repackage) on project project-data: 执行目标 org.springframework.boot:spring-boot 的重新打包-maven-plugin:2.1.1.RELEASE:repackage failed: Unable to find main class -> [Help 1]

project-app模块在 src 文件夹中有一个 java 类,而该project-data模块没有主类。

父 pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <packaging>pom</packaging>
    <modules>
        <module>project-data</module>
        <module>project-app</module>
    </modules>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.1.RELEASE</version>
        <relativePath/> <!-- lookup parent …
Run Code Online (Sandbox Code Playgroud)

java spring maven multi-module

6
推荐指数
3
解决办法
6130
查看次数

2019年android多模块gradle项目如何聚合测试报告

我有一个多模块 Android gradle 项目。

project
  |- app
  |- module1
  |- module2
Run Code Online (Sandbox Code Playgroud)

每个模块都包含单元测试,该app模块还包含仪表测试。我不想从模块中获取 xml 报告,而是将它们存储在一个地方,例如/build/tests/reports.

到目前为止我尝试实现的是将报告目录设置为此路径

android {
    testOptions {
        resultsDir "$rootDir/build/test/results"
        reportDir "$rootDir/build/test/reports"
    }
}
Run Code Online (Sandbox Code Playgroud)

我将其应用到了模块的所有 gradle 文件中。但这似乎只适用于仪器/connected测试报告。我怎样才能在单元测试中实现这一目标?

testing android unit-testing multi-module android-gradle-plugin

6
推荐指数
0
解决办法
909
查看次数

Spring Boot多模块maven项目重新打包失败

我目前正在学习 John Thompson 的 Spring 框架初学者到大师课程。我按照他的一步步程序在 Spring Boot 上为 Spring Pet Clinic 创建多模块 Maven 项目。当我单击根模块上的包时,它显示重新打包失败,无法找到主类。

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        <executions>
            <execution>
                <goals>
                    <goal>repackage</goal>
                </goals>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </execution>
        </executions>
        </plugin>
    </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

[错误] 无法在项目 pet-clinic-data 上执行目标 org.springframework.boot:spring-boot-maven-plugin:2.1.6.RELEASE:repackage(重新打包):目标 org.springframework.boot:spring 的执行重新打包-boot-maven-plugin:2.1.6.RELEASE:重新打包失败:无法找到主类 -> [帮助 1]

java spring-mvc multi-module spring-boot spring-boot-maven-plugin

6
推荐指数
4
解决办法
6491
查看次数

使用Gradle maven-publish插件将具有子项目依赖的项目发布到maven

我有一个具有以下结构的 gradle 多项目:

\n\n
root\n\xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 core-library\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 build.gradle\n\xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 additional-feature-library\n\xe2\x94\x82   \xe2\x94\x82\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 entities\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 build.gradle\n\xe2\x94\x82   \xe2\x94\x82\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 build.gradle\n\xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 sample-android-app\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 build.gradle\n\xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 build.gradle\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 settings.gradle\n
Run Code Online (Sandbox Code Playgroud)\n\n

设置.gradle:

\n\n
include(":core-library")\ninclude(":additional-feature-library")\ninclude(":additional-feature-library:entities")\ninclude(":sample-android-app")\n
Run Code Online (Sandbox Code Playgroud)\n\n

附加功能库/build.gradle:

\n\n
plugins {\n    id("java-library")\n    id("kotlin")\n    id("maven-publish")\n}\n\ndependencies {\n    implementation(project(":additional-feature-library:entities"))\n    implementation(project(":core-library"))\n\n    // ... other dependencies from maven\n}\n\npublishing {\n    publications {\n        maven(MavenPublication) {\n            groupId = "com.example"\n            artifactId = "additional-feature-library"\n            version = "1.0.0"\n\n            from components.java\n        }\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

当我执行任务additional-feature-library/publishToMavenLocal时,它会生成*.jar文件,其中包含来自additional-feature-library和POM的类,具有以下依赖项:

\n\n
  <dependencies>\n    <dependency>\n      <groupId>root.additional-feature-library</groupId>\n      <artifactId>entities</artifactId>\n      <version>unspecified</version>\n      <scope>runtime</scope>\n    </dependency>\n    <dependency>\n      <groupId>root</groupId>\n      <artifactId>core-library</artifactId>\n      <version>1.0.2</version>\n      <scope>runtime</scope>\n    </dependency>\n
Run Code Online (Sandbox Code Playgroud)\n\n

问题是这些依赖项不存在(实际上 …

java android gradle multi-module maven-publish

6
推荐指数
0
解决办法
504
查看次数

多模块(pom)和java模块系统的区别

我试图了解使用 Java 平台模块系统 (JPMS) 构建项目与使用 multi-poms 构建项目之间的区别。

主要区别是 JPMS 封装代码而多 pom 项目分离项目依赖关系?

我在谷歌上搜索过,但没有找到对差异的很好解释,但我看到模块这个词可以互换使用。

java maven multi-module java-module

6
推荐指数
1
解决办法
428
查看次数

我们可以读取settings.gradle中的命令行参数吗?

我想读取 settings.gradle 中的命令行参数,以便我可以仅添加那些包含我正在传递的命令行的子模块。

我们可以读取settings.gradle中的命令行参数吗?

gradle multi-module

6
推荐指数
1
解决办法
1153
查看次数