标签: multi-module

大型GWT项目的结构

上下文

  • 具有多个maven模块或单个maven模块结构的大项目

  • 你最后使用多maven模块还是单maven模块结构?

细节

如果您已经开发了一个开发时间很长并且包含大量功能的大型项目(即不是一个简单的项目),您是否选择将项目拆分为多个maven模块或者采用单模块方法?

例如,具有多模块结构,在运行maven命令时崩溃,如mvn gwt:eclipse(请参阅http://bit.ly/gs4Rmo).我想这对单模块GWT项目来说效果很好.并且可能存在如上所述的其他命令,其具有多模块结构的问题.

但是,多模块结构可以带来更快开发的好处,即如果将"服务器"与"客户端"模块分开,则可以单独编译业务逻辑(服务器)并将其打包到生成的Web存档中.编译GWT代码大约需要20秒,因此如果您只修改服务器软件包,从长远来看可以为您节省大量时间.

在使用多模块/单模块项目时,您遇到的其他情况如上所述?

谢谢!

gwt structure multi-module

3
推荐指数
1
解决办法
2494
查看次数

没有(远程)存储库的Maven?

我有一个Maven 2多模块项目,并希望确保所有内容都来自我当地的签出源.

  • 是否有可能告诉Maven永远不会为它拥有的模块下载任何东西?我是否必须禁用远程存储库?
  • Maven是否总是必须采用昂贵的方式将模块安装到本地存储库中,然后再为每个依赖项提取它?
  • 如果模块的本地源发生了变化,Maven是否会自动首先重新编译模块的依赖项,然后编译依赖项?

repository maven multi-module

3
推荐指数
2
解决办法
2万
查看次数

编译多模块maven项目而不安装到本地存储库

我的多模块maven项目中有编译(和打包)问题.编译两个项目中的一个项目时出现问题,这两个项目是兄弟项目并包含在父项目中,另一个项目依赖于另一项目.为简单起见,我在pom.xml这里草绘项目文件夹结构和内容.

folder structure

-parent
|
|-child1
| |-src
| |  |-main
| |     |-java
| |        |-Child1Class.java
| |-pom.xml
|
|-child2
| |-src
| |  |-main
| |     |-java
| |        |-Child2Class.java
| |-pom.xml
|
|-pom.xml
Run Code Online (Sandbox Code Playgroud)

pom.xml of parent

<?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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example.project</groupId>
    <artifactId>parent</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>parent</name>
    <modules>
        <module>child1</module>
        <module>child2</module>
    </modules>
</project>
Run Code Online (Sandbox Code Playgroud)

pom.xml of child1

<?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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.example.project</groupId>
        <artifactId>parent</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <groupId>com.example.project</groupId>
    <artifactId>child1</artifactId>
    <version>1.0-SNAPSHOT</version> …
Run Code Online (Sandbox Code Playgroud)

java pom.xml maven multi-module

3
推荐指数
1
解决办法
2780
查看次数

SpringBoot无法识别多模块Java应用程序中另一个模块的RestController

我花了很多时间,但我无法解决这个(配置)问题.

技术堆栈: Java(1.8),Springboot(starter-parent,starter-web),Maven,IntelliJ IDEA

描述:尝试创建一个由两个模块组成的多模块Java应用程序(最初):

  1. 核心模块:主模块(主要业务逻辑,每个其他模块都应该通过这个看到并进行交互).该模块包含主应用程序类.
  2. webgateway模块:Simple Rest Controller,用于映射请求并调用核心模块

问题:发送http请求时,Springboot不会从webgateway module => 404错误加载/扫描RestController

Github回购:https://github.com/Sorin-J/Greeter

项目配置:

Greeter 
   |
   + pom.xml (parent pom)
   |
   + -- core                                            
   |     |
   |     + ...
   |     |
   |     + pom.xml
   |
   + -- webgateway 
         |
         + ...
         |
         + pom.xml (depends on core pom.xml)
Run Code Online (Sandbox Code Playgroud)

父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>

    <groupId>com.bet.jbs</groupId>
    <artifactId>Greeter</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>

    <modules>
        <module>core</module>
        <module>webgateway</module>
    </modules>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId> …
Run Code Online (Sandbox Code Playgroud)

java intellij-idea maven multi-module spring-boot

3
推荐指数
2
解决办法
5860
查看次数

带有 @SpringBootConfiguration 的 Spring Boot 多模块应用程序

我有一个 maven 多模块应用程序,其结构如下:

-parent_project
-actual_project
-jpaBase
Run Code Online (Sandbox Code Playgroud)

父项目是项目的 maven 聚合:actual_project 和 jpaBase(都是 spring boot 应用程序)

jpaBase 是 actual_project 的依赖项。

现在,当我执行 mvn 包时,出现单元测试错误:

发现多个@SpringBootConfiguration 注解类

因为 jpaBase 和 actual_project 都有用 @SpringBootConfiguration 注释的类。

如何确保 Spring 只考虑 actual_project 而不是 jpaBase 的 SpringBootConfiguration 类。

谢谢!

java spring maven multi-module spring-boot

3
推荐指数
1
解决办法
1676
查看次数

多模块多语言项目的 Travis-ci 文件

有没有办法设置 travis-ci 以构建不同语言的多个项目?

可以说我的回购是

AwesomeRepoThatDoestOneThingInDifferentLanguages
-cpp
-csharp
-python2
-python3
-java
-go
-ruby
-lua
-objectivec
Run Code Online (Sandbox Code Playgroud)

现在,我希望将 ci 应用于此。如果我只是将 .travis.yml 文件添加到我的 python2 项目中,travis-ci 会抱怨没有找到 .travis.yml,因为它在 repo 的根目录中寻找一个。那么,有没有一种方法可以将 .travis.yml 放在顶部,然后在我的每个子模块中进一步调用 travis.yml ?

multilingual multi-module travis-ci

3
推荐指数
1
解决办法
1466
查看次数

在多模块项目构建过程中模块之间的Maven依赖关系解析

我遇到了一些以前没有想到的Maven行为。例如,我们有一个多模块项目A:

A
|
--- api
--- impl
Run Code Online (Sandbox Code Playgroud)

impl模块使用api作为依赖项:

<dependency>
   <groupId>examle</groupId>
   <artifactId>api</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)

当我运行mvn clean test整个应用程序时,maven成功完成。当我为impl模块执行相同的命令时,它们的maven失败,并出现以下异常:

[ERROR] Failed to execute goal on project impl: Could not resolve 
dependencies for project A:impl:jar:1.0-SNAPSHOT: Could not find artifact 
A:api:jar:1.0-SNAPSHOT in maven-public
Run Code Online (Sandbox Code Playgroud)

因此,我的问题是maven如何解决未构建到jar文件中并推送到本地/远程存储库中的依赖项。在所有教程中,都说过maven在本地存储库中寻找依赖项,如果找不到,则在远程仓库中搜索,并且对于SNAPSHOTS几乎没有什么不同的行为。

但就我而言,我运行测试阶段,即使在目标存储库中也不构建jar文件

java maven multi-module maven-dependency

3
推荐指数
1
解决办法
2403
查看次数

如何在 Gradle 中包含多模块项目?

我正在尝试将一个功能添加到多模块 Gradle Java 项目中(如果您好奇的话,它是 spring 集成)。我已将该项目分叉到本地计算机上,并正在创建一个单独的 Gradle 项目,该项目引用此本地克隆的项目进行开发。

在我的新项目中,settings.gradle 文件如下所示:

include ":springint"
project(":springint").projectDir = file("/users/me/git/spring-integration")

rootProject.name = 'sprinttest'
Run Code Online (Sandbox Code Playgroud)

我从我的 build.gradle 中引用它:

dependencies {
    compile project(":springint")
...
Run Code Online (Sandbox Code Playgroud)

问题是它似乎只考虑 /git/spring-integration 目录的 build.gradle 而不是它的 settings.gradle。这是一个问题,因为有很多子模块是通过其 settings.gradle 文件引用的,当我运行本地项目时,这些子模块不会被拾取。我得到的错误是:

  • 出了什么问题:评估项目“:springint”时出现问题。在项目“:springint”中找不到路径为“spring-integration-test-support”的项目。

如果您查看 spring-integration,settings.gradle您会发现它动态地包含所有这些子项目:

rootProject.name = 'spring-integration'

rootDir.eachDir { dir ->
    if (dir.name.startsWith('spring-integration-')) {
        include ":${dir.name}"
    }
}
Run Code Online (Sandbox Code Playgroud)

我认为 gradle 会在构建时自动合并此依赖项的 settings.gradle 但事实并非如此,因为这就是为什么找不到spring-integrationtest-support 的原因。我是否遗漏了某些内容,或者我应该从该项目的设置“重新创建”相同的逻辑到我自己的设置中?

java gradle multi-module

3
推荐指数
1
解决办法
4348
查看次数

错误:找不到符号导入 dagger.hilt.android.components.ApplicationComponent;

我正在尝试将 dagger hilt 包含到我只有三个模块(app、frameworks_and_drivers、interface_adapters)的多模块项目中。我遵循了hilt文档https://developer.android.com/training/dependency-injection/hilt-android?hl=es-419,所以我结束向三个不同的模块添加相同的内容,我知道我们可以简化为只需添加一个。当我尝试重建项目时出现此错误:“错误:找不到符号导入 dagger.hilt.android.components.ApplicationComponent;”在此处输入图片说明

出于某种原因,即使其他应用程序组件可用,应用程序组件也不可用。

在此处输入图片说明

也许如果你们中的一个人知道如何解决这个问题,请告诉我。谢谢!

android multi-module dagger-hilt

3
推荐指数
2
解决办法
2107
查看次数

使用 Spring Boot 从 Gradle 多模块项目构建的 Jar 不起作用

我创建了 spring-boot gradle 多模块项目,其中包含 3 个模块:控制器、服务、存储库。主文件位于控制器模块中,名为 MySpringBootApplication。

我可以构建这个项目(使用 gradle build)并可以获得 jar 文件。但是在命令行中启动这个 jar 后,我遇到了下一个错误:

Error: Could not find or load main class com.epam.esm.config.MySpringBootApplication Caused by: java.lang.ClassNotFoundException: com.epam.esm.config.MySpringBootApplication.
Run Code Online (Sandbox Code Playgroud)

为了修复此错误,我在 main 中的MANIFEST.MF文件Main-Class中添加了属性,但此操作没有帮助。那么有人可以帮忙吗?build.gradle

主要构建.Gradle 文件

        plugins {
            id 'java'
            id 'io.spring.dependency-management' version '1.0.11.RELEASE'
            id 'org.springframework.boot' version '2.4.3'
            id 'application'
        }
        
        group = 'com.myproject'
        version = 'snapshot-1.0.0'
        
        repositories {
            mavenCentral()
        }
        
        bootJar {
            enabled = false
        }
        
        jar {
            enabled = true
            manifest {
                attributes(
                        "Main-Class": "com.myproject.config.MySpringBootApplication")
            }
        } …
Run Code Online (Sandbox Code Playgroud)

java gradle multi-module spring-boot

3
推荐指数
1
解决办法
4919
查看次数