我正在将我们的一个项目从maven迁移到gradle:这是一个gradle多项目
然而,传统的(基于maven的)构建环境也期望根项目发布一个pom文件,其“打包”节点等于“pom”(看起来是maven的常见行为)
所以现在,我试图让Gradle生成这个,但只找到为每个工件自定义自动生成的pom的方法,我找不到一种方法来生成/上传一个pom而不发布一个实际的工件。
目前的解决方法是让根项目使用java插件,生成/安装一个空的jar,并操纵生成的pom以符合maven的期望(packaging=pom),但这是一种黑客行为。
有没有办法用gradle生成这个根pom文件?
示例项目:
settings.gradle
rootProject.name = 'MultiProject'
include 'child01', 'child02'
rootProject.children.each { it.name = rootProject.name + "-" + it.name }
盖德·格拉德尔
subprojects {
apply plugin: 'java'
}
allprojects {
apply plugin: 'maven'
group = 'my_group'
version = '0.0.1-SNAPSHOT'
}
编辑(当前解决方案),添加到build.gradle
// workaround to generate pom
apply plugin: 'java'
configurations {
pomCreation
}
task createPom {
ext.newPomFile = "${buildDir}/blabla.pom"
doLast {
pom {
project {
packaging 'pom'
}
}.writeTo(newPomFile)
}
}
install.dependsOn(createPom)
artifacts {
pomCreation file(createPom.newPomFile)
}
我会使用gradle maven发布插件。使用该插件,您可以定义特定的pom,而不必上传其他工件。这里是一个例子:
publishing {
publications {
maven(MavenPublication) {
pom.withXml{
def xml = asNode()
xml.children().last() + {
delegate.dependencies {
delegate.dependency {
delegate.groupId 'org.springframework'
delegate.artifactId 'spring-context'
delegate.version( '3.2.8.RELEASE' )
}
}
}
}
}
}
更改历史 * 2017-12-31 胡小根 初始化文档 1 步骤 以下步骤以 Xcode 8.3.1 为例 1.1 生成xcode工程 ionic cordova platform add ios 如下图所示: 1.2 在xcode中登录Apple ID 如下图所示: 1.3 生成CSR文件 1.4 生成Certificate 登录developer.apple.com,生成Ce
游戏发布之前的准备 啊,这么快就已经到最后一步了? 恭喜,现在只要再做最后一些处理,你的游戏就可以发布了。 首先需要的是对游戏的菜单进行调整。 平时测试的时候,“调试”菜单栏可以打开后台,方便你查看游戏过程中发生的事,但你肯定不想玩家通过后台查看甚至任意修改角色好感度吧。 所以呢,把没用的菜单关掉是很重要的一步。 只要打开“界面设定-Config.tjs”就可以很简单地关掉不想要的菜单项,当然,关
在运行吉里吉里程序时、会出现游戏工程文件夹选择画面(译注:请试着点一下KAGeXpress文件夹下的krkr.eXe)。如果不希望出现文件夹选择画面,而是让吉里吉里自动读取游戏工程的话,可以使用以下的方法。 将游戏工程文件夹改名为 data 将游戏工程文件夹命名为 "data" ,并将文件夹和吉里吉里可执行文件 ( krkr.eXe ) 放在同一目录下,在吉里吉里起动的时候,就会自动执行这个游
对于所有专家,我们一直在开发一个包含以下模块的应用程序: opencv 努比 熊猫 跺脚 nltk bs4 PIL 请求 还有一些不是pythons标准库的一部分。希望将其打包到单个可执行文件中。因此,我们尝试使用pyinstaller。执行时也是如此-它会建立分发文件夹-但无法执行。它抛出以下错误: 下面是运行命令时的输出 有人能帮我做同样的事吗。。我怎样才能解决这个问题?
我目前正在尝试在Azure运营模式服务器中设置一个包含多个工件的发布管道。第一个工件是从构建管道发布的,另一个工件是托管在Azure工件提要中的NuGet包。 当我创建和部署版本时,它成功下载了第一个工件,没有问题,当它继续下载NuGet包时,任务被标记为成功,但是它无法下载日志中包含以下内容的NuGet包。 知道会发生什么吗?
我最终将两个不同的pom文件(一个用于常规jar文件,一个用于影子jar)发布到同一个URL,其中一个覆盖另一个。这种行为导致客户下载默认的jar,但在pom文件中没有任何依赖项。 我尝试了许多方法来禁用shadowJar pom文件,但没有任何成功。我怎么让它工作?