我是maven的新手.我想在多模块项目中使用过滤.父pom的包装类型设置为pom.该项目的结构如下:
pom.xml
|
|______MODULE1
| |
| pom.xml
| File1_needed_to_be_filtered
|
File2_needed_to_be_filtered
Run Code Online (Sandbox Code Playgroud)
请注意,Module1也是多模块项目.所以请告诉我如何将过滤应用于file1和file2.如果我对file1应用过滤,那么处理文件将存储在哪里(因为包装类型为pom的pom文件不会创建任何名为target的文件夹!)请帮助我,因为这对我来说非常关键,这个问题无处可寻否则在互联网上.
有几个类似的问题,但没有这样的.你如何处理这种情况(典型情况):
一个由8-11个子项目组成的项目,具有父工件/项目和一个主要项目,主要使用/声明其他项目作为模块.
问题是所有项目"严格"只共享公共依赖项,如testng, logging, apache commons and stuff.但总是喜欢其中3个使用50-60%相同的特定deps(apache-chemistry,jackrabbit,abdera等),另外2-3个也使用50-60%相同但不同的依赖.而主要的使用了很多相同的deps.
我不能将这些"非严格"共享deps放入父项目中以供其他人继承.所以只有常见的deps才会被继承.并且有大量重复的依赖项.我只能通过管理他们的版本<dependencyManagement>.
另一个选择是父pom包含大多数依赖项,但子项目甚至继承了它们不需要的项.
我可以拥有多个父项目,但感觉不对.父项目的继承也可能是噩梦,因为如果你没有正确地记录/评论父pom定义你不知道项目需要什么依赖项.
另一种方法是创建仅作为依赖容器的pom工件 - 它们声明特定的依赖关系组,以便模块只声明那些以获得传递依赖关系.但是,嘿,你想部署和提交某种
OneDepArtifact声明 jackrabit, abdera, chemistry
AnotherDepArtifact声明 htmlcleaner, google-api, tika
ThirdDepArtifact声明 spring, httpclient, selenium
这是一个巨大的混乱,我不确定我<dependencyManagement>是否正确使用它,它似乎只对管理依赖版本有用.
我正在考虑将我的应用程序开发改编为"maven multimodule design".但是如果你想创建spring服务/ bean,只使用各种库,在一个模块中,你不在不同的模块中实现它们,只是因为它们使用其他模块也使用的库:-)
我有一个很大的多模块项目,我想为Maven指定SCM信息.但是,每个模块和父项目在SVN上都有一个专用文件夹,因此SCM信息似乎是特定于每个模块的.
我需要为连接和developerConnection元素使用哪个值?我是否需要为每个模块配置SCM,或者可以在父项目中配置一次?
谢谢
我想上运行两个不同版本的的相同的多模块Maven项目下蚀.
不幸的是,当您在eclipse下导入多模块maven项目时,您可以自己更改父模块项目名称,以防止冲突,但不能更改子模块项目名称.子模块作为根项目导入,以模块名称命名.显然,在导入期间无法重命名它们.
在一个理想的情况下,我想保持它的原样.显然我想保持相同的eclipse工作区 ......
我最近需要签出一个apache项目来做一些事实调查/调试(特别是maven-surefire-plugin,看看这个问题).与大多数其他apache项目一样,这是一个maven多模块项目.所以,在eclipse中,我打开SVN Repositories browswer,添加一个新的存储库,找到项目和right-click->Checkout....在向导中,我单击Checkout as a project in the workspace并键入项目的名称.
我有这个项目,现在我需要让eclipse知道它的maven项目,所以right-click->Configure->Convert to Maven Project.现在,父项目是一个maven项目.我可以right-click->Run As->Maven Build,它的工作原理.但是,所有模块都只是文件夹.Eclipse不知道源代码的位置,也不知道源代码的位置.在单个模块项目中,它将自动设置源文件夹,构建文件夹和其他配置.此外,如果您从头开始创建一个多模块项目,首先要创建父项目,然后,当您向其添加模块时,它们每个都显示为eclipse中的单个项目,其中物理目录位于父项目下默认maven构建过程所需的文件夹.
现在,知道在创建新项目时它是如何完成的,我可以File->New->Project...选择General->Project给项目命名(我将其与模块名称相匹配),取消选中Use default location并设置Location:到父项目文件夹内部模块的路径.点击后Finish,为每个其他模块重复这个过程,我有一些看起来类似于我期望的东西.我现在需要以与父项目相同的方式将每个单独的模块转换为maven模块.太棒了,他们都是maven项目,对吧?
然后我打开它们,并且没有设置源文件夹.
唉...然后我去每个项目,把它打开,然后放在src文件夹I上right-click->Build Path->Use as Source Folder.泡沫,冲洗,重复......一旦完成所有项目,它看起来和感觉就像我从头开始这个项目.事情的功能.
我的问题是,这真的很难吗?我错过了一条捷径吗?如果Configure->Convert to Maven Project父母pom意识到它是一个多模块项目并且为我完成了所有工作,那会不会有意义?对于apache项目来说,这是一个非常痛苦的过程,因为它们似乎都有很多很多模块......任何人都知道更好的过程吗?
我的问题是:如何使用maven根据目标操作系统/体系结构为SWT应用程序生成多个可执行Jar文件(包括依赖项)?
我创建了一个SWT应用程序,它必须在不同的操作系统和体系结构上运行.该项目是Maven多模块项目,包括父POM.
project-pom.xml (packaging = pom, specify SWT dependencies) `- application-module (inherit SWT dependencies) `- pom.xml (packaging = jar) `- domain-specific-module `- pom.xml (packaging = jar) `- utils-module (inherit SWT dependencies) `- pom.xml (packaging = jar)
在父POM(project-pom.xml)中,我根据我的操作系统和架构使用maven配置文件包含了SWT依赖项,工作正常:
<dependencies>
<dependency>
<groupId>org.eclipse.swt</groupId>
<artifactId>${swt.artifactId}</artifactId>
<version>4.3</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>EclipseSwtRepository</id>
<url>https://swt-repo.googlecode.com/svn/repo/</url>
</repository>
</repositories>
<profiles>
<profile>
<id>unix-amd64</id>
<activation>
<os>
<family>unix</family>
<arch>amd64</arch>
</os>
</activation>
<properties>
<swt.artifactId>org.eclipse.swt.gtk.linux.x86_64</swt.artifactId>
</properties>
</profile>
<profile>
<id>windows-x86</id>
<activation>
<os>
<family>windows</family>
<arch>x86</arch>
</os>
</activation>
<properties>
<swt.artifactId>org.eclipse.swt.win32.win32.x86</swt.artifactId>
</properties>
</profile>
<profile>
<id>windows-x86_64</id>
<activation> …Run Code Online (Sandbox Code Playgroud) 我有一个多模块项目。不幸的是,我不得不地方build.gradle和settings.gradle在其他目录(gradlep/),而不是根目录,所以我不得不使用-p选项。
我发现我可以像这样在特定的子模块上执行多个任务。
$ gradle -p gradlep/ :long-named-submodule:clean :long-named-submodule:build
Run Code Online (Sandbox Code Playgroud)
有什么方法可以更简洁地调用吗?
我环顾四周,但找不到明确的答案。
我非常需要支持同一Python模块的N版本。
如果它们存储在相同的包/目录中,则它们必须具有唯一的名称,如以下示例所示:
.../some/package/my_module_1.0.py
.../some/package/my_module_1.1.py
.../some/package/my_module_2.0.py
-- etc. --
Run Code Online (Sandbox Code Playgroud)
然后,每个人都将通过“ version ”属性存储其版本号。
然后,使用程序将导入所需的正确版本(例如:import my_module_1.1)。
这是完成此多模块版本需求的最佳方法(也是最Python的方法)吗?
谢谢!
我buildSrc在多模块Kotlin项目中使用模块来管理依赖项定义和版本.该模块使用kotlin-dsl,如build.gradle.kts所示:
plugins {
`kotlin-dsl`
}
Run Code Online (Sandbox Code Playgroud)
替代声明:
plugins {
id("org.gradle.kotlin.kotlin-dsl") version "0.16.2"
}
Run Code Online (Sandbox Code Playgroud)
我想使用相同的Kotlin版本来编译buildSrc模块以及应用程序模块.我的第一个尝试是简单地添加JVM工件:
plugins {
`kotlin-dsl`
kotlin("jvm") version "1.2.31"
}
Run Code Online (Sandbox Code Playgroud)
然而,这会导致构建错误,这将在此处讨论:
解析插件时出错[id:'org.jetbrains.kotlin.jvm',版本:'1.2.31']
类路径上已有插件的插件请求不得包含版本
在整个项目中只使用一次 Kotlin版本定义的便捷方法是什么?
我正在使用Maven 3.5,Git和Jenkins 2.138.1.我为我的多模块Maven项目设置了Maven Jenkins工作.通常情况下,如果我想在Maven中构建一个模块,无论它有什么影响,我都可以运行
mvn install -pl myModule -am
Run Code Online (Sandbox Code Playgroud)
从命令行.我想要做的是配置我的Jenkins作业只构建受影响的Maven模块及其依赖项,如果有人检查特定模块的代码,从而加快我的构建.如何在Jenkins中配置它?
multi-module ×10
maven ×5
eclipse ×2
gradle ×2
java ×2
maven-3 ×2
pom.xml ×2
build.gradle ×1
dependencies ×1
import ×1
inheritance ×1
jar ×1
jenkins ×1
kotlin ×1
maven-2 ×1
module ×1
python ×1
swt ×1
vcs-checkout ×1
version ×1