- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我遇到了 Maven 的问题
── bom-porject
├── pom.xml
这是bom proejct,仅用于外部maven依赖的依赖管理。
该项目只是将pom文件发布到maven repo
此 Material list 导入到通过 <dependency Management>
开发的不同项目中
然后我还有另一个项目
── project-libs-root
├── module-lib-database
│ └── pom.xml <--- Module lib database POM
├── module-lib-conversions
│ └── pom.xml <--- Module lib conversion POM
└── pom.xml <--- project-libs-root
这是我正在开发的所有应用程序使用的一些通用库。
在 project-libs-root pom.xml
进口bom-porject pom.xml
使用
<dependencyManagement>
我这样做是为了访问 bom-project 中定义的依赖项
然后我还有另一个maven项目
── application-root
├── module-app-db
│ └── pom.xml <--- Module apllication database POM
├── module-app-domain
│ └── pom.xml <--- Module application domain POM
├── module-app
│ └── pom.xml <--- Module application POM (this is a deployment)
└── pom.xml <--- application-root
这是一个应用程序这个application-root pom.xml
输入 project-libs-root pom.xml
通过<dependencyManagement>.
通过这样做,我可以访问 bom-porject pom.xml
和依赖关系 定义在其中
围绕内部模块的令人困惑的部分以及在使用它的项目中管理它的依赖关系例如
假设我是否需要使用 Artifact module-lib-database
来自project-libs-root
在module-app-db
application-root
的 Artifact ,我应该在哪里提及 module-lib-database
的依赖关系
目前我在 <dependecies>
中明确调用它标签 module-app-db pom.xml
有什么办法可以在 project-libs-root
中定义它吗?并通过 <dependencyMangement>
将其提交给应用程序标签
最佳答案
可能,这就是我尝试根据您的描述设置项目的方式:
parent-bom - 这将使您的所有第三方依赖项声明为在其他项目中维护一个版本
<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</groupId>
<artifactId>parent-bom</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>23.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.6</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
lib-parent 您所描述的公共(public)库的另一个多模块项目。
|-lib-parent
| |
| |- lib-db
| | |
| | | - pom.xml
| | ...
| |- pom.xml
lib-父
<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</groupId>
<artifactId>lib-parent</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>lib-db</module>
<module>lib-bom</module>
</modules>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>parent-bom</artifactId>
<version>1.0-SNAPSHOT</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
lib-db
<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</groupId>
<artifactId>lib-parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>lib-db</artifactId>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
</project>
lib-bom
<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</groupId>
<artifactId>lib-parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>lib-bom</artifactId>
<packaging>pom</packaging>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>lib-db</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
最后,应用程序父项目将使用来自 parent-bom
的依赖项和来自 lib-parent
项目的公共(public)库。
|- application-parent
| |
| |- module-app-db
| | |
| | | - pom.xml
| | ...
| |- pom.xml
应用程序父级
<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</groupId>
<artifactId>application-parent</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>module-app-db</module>
</modules>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>parent-bom</artifactId>
<version>1.0-SNAPSHOT</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>lib-bom</artifactId>
<version>1.0-SNAPSHOT</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
模块应用程序数据库
<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</groupId>
<artifactId>application-parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>module-app-db</artifactId>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>lib-db</artifactId>
</dependency>
</dependencies>
</project>
要构建上述项目,步骤如下:
$cd /path/to/parent-bom-dir && mvn clean install
$cd /path/to/lib-parent-dir && mvn clean install
$cd /path/to/application-parent-dir && mvn clean install
请告诉我这是否适合您。
关于java - 如何跨多个 Maven 项目管理 Maven Muti 项目中的依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48789774/
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 11 年前。 Improve thi
我需要建议,我们有三个独立的项目,但其中一些项目共享一些依赖项,其他项目则与上下文相关。在maven pom中使用继承更好还是使用依赖更好? 最佳答案 取决于您所说的“与上下文相关”的含义。 一般来说
我正在寻找有关如何管理一个项目的多个版本的一些提示和技巧。 目前我有一个应用程序的开发版本,其中包括一些改进和新功能。与此同时,我必须解决一些错误。修复新功能未触及的文件上的错误很容易,但只要我触摸具
我的公司正在使用 GIT 重组我们的存储库。基本上,我们将有: (A) Master Repo,它是我们构建的生产部署的未构建镜像 (B) 用于修补程序的持续集成分支, (C) 用于主要/次要更新
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 4年前关闭。 Improve thi
我想问一下你们中是否有人有任何经验{and,or}可以向我指出一个适用于 {Scala,Ensime,SBT} 的 Emacs 项目管理扩展。如果它不需要太多的黑客攻击,那也将是惊人的。我过去做过一些
我在 Eclipse 中同时使用 Java (J2SE) 和 C++(使用 CDT 插件)。所以我想管理单独的 Java 项目和 C++ 项目。我切换 C++ 视角,我看到一个名为“C/C++ 项目”
在服务器环境中,我希望编写URL路径来查询数据。在 Electron 中,因为我可以在应用程序的任何部分使用普通的 JavaScript 使用 NodeJS,所以两者之间似乎没有“分离”。 大部分代码
有人有使用 Maven 管理基于 C# 的项目的经验吗? 如果是,请告诉我几句话,创建这样的设置会有多奇怪。 谢谢 最佳答案 Maven 与语言无关,应该可以将它与 Java 以外的其他语言一起使用,
随着团队建设以及相关业务的日益增长,越来越多的 NPM 包需要多人协同维护,各个项目之间有关联,就不得不在多个编辑器之间切换,以及通过 npm link 来调试,开发的效率受到制约,那有没有一种
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于 Stack Overflow 来说是偏离
我知道VSS is awful,我只是伟大的生活机器中的一枚齿轮,并且学会了在治疗师的帮助下过着无力的感觉。但是,我想给这里带来一些混乱,与VSS集成的像FogBugz这样的真实问题跟踪/项目管理系统
我有一个 C++ 解决方案项目。对于该项目,我有一些配置文件,我想在项目中进行管理,并且在构建项目时,将这些配置文件添加到适当目录结构中的可执行构建路径中。 例子: test.exe 引用 confi
我刚刚迁移到 Android Studio,我对如何管理我的项目/模块有些困惑。 例如,在 Eclipse 中我有 3 个项目: 库项目(有几个 jar 库) App 项目 1(使用 Library
情况 我有项目 A 和项目 B,A 通过 Composer 依赖于 B。 B 在 A 中实现接口(interface)的功能。 我在 B 中有正确执行的单元测试。 现在,我想通过 API 进行测试——
我遇到了 Maven 的问题 ── bom-porject ├── pom.xml 这是bom proejct,仅用于外部maven依赖的依赖管理。 该项目只是将pom文件发布到maven r
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 3 年前。 Improve
再次声明:如果您投 -1,请发表评论解释原因。这篇文章不是关于您是否赞成这种方法,而是关于如何去做。 像许多架构师一样,我通过多年的经验制定了编码标准,我希望我的开发人员能够遵守这些标准。 对于那些认
对于在 TFS 中处理我们的项目的最佳方式,我有点困惑。 我们是符合 CMMI 3 级(致力于 4 级)的组织。因此,我们目前正在 TFS 中使用 MSF CMMI 流程模板,我正在对其进行定制以更好
我是一名优秀的程序员,十分优秀!