- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道如何使用单个artifactId
发布单个 Artifact 。我正在使用gradle发布我的 Artifact 。我的 Artifact 是.aar文件。
我像这样发布我的 Artifact :
publishing {
publications {
myPublication(MavenPublication) {
groupId 'com.example.project'
version '1.0.2'
artifactId 'myProject'
artifact("$buildDir/outputs/aar/mySDK-release.aar")
}
}
repositories {
mavenLocal()
}
}
artifactId
发布多个 Artifact 。
最佳答案
TLDR:使用分类器。
由于您要发布到Maven,因此,请阅读他们有关Maven Coordinates的文档:
The POM defined above is the bare minimum that Maven allows.
groupId:artifactId:version
are all required fields (although, groupId and version do not need to be explicitly defined if they are inherited from a parent - more on inheritance later). The three fields act much like an address and timestamp in one. This marks a specific place in a repository, acting like a coordinate system for Maven projects:
- groupId: This is generally unique amongst an organization or a project. For example, all core Maven artifacts do (well, should) live under the groupId
org.apache.maven
. Group ID's do not necessarily use the dot notation, for example, the junit project. Note that the dot-notated groupId does not have to correspond to the package structure that the project contains. It is, however, a good practice to follow. When stored within a repository, the group acts much like the Java packaging structure does in an operating system. The dots are replaced by OS specific directory separators (such as '/' in Unix) which becomes a relative directory structure from the base repository. In the example given, theorg.codehaus.mojo
group lives within the directory$M2_REPO/org/codehaus/mojo
.- artifactId: The artifactId is generally the name that the project is known by. Although the groupId is important, people within the group will rarely mention the groupId in discussion (they are often all be the same ID, such as the MojoHaus project groupId:
org.codehaus.mojo
). It, along with the groupId, creates a key that separates this project from every other project in the world (at least, it should :) ). Along with the groupId, the artifactId fully defines the artifact's living quarters within the repository. In the case of the above project,my-project
lives in$M2_REPO/org/codehaus/mojo/my-project
.- version: This is the last piece of the naming puzzle.
groupId:artifactId
denotes a single project but they cannot delineate which incarnation of that project we are talking about. Do we want thejunit:junit
of 2018 (version 4.12), or of 2007 (version 3.8.2)? In short: code changes, those changes should be versioned, and this element keeps those versions in line. It is also used within an artifact's repository to separate versions from each other.my-project
version 1.0 files live in the directory structure$M2_REPO/org/codehaus/mojo/my-project/1.0
.The three elements given above point to a specific version of a project, letting Maven know who we are dealing with, and when in its software lifecycle we want them.
artifactId
下发布两个 Artifact 的唯一方法是使用不同的版本。
1.0.0-ALPHA
,
1.0.0-RC
。这实际上就是在Maven存储库中发布javadocs和源代码的方式:坐标为
a.b.c:d:1.0.0
的 Artifact 可能会将javadocs发布在
a.b.c:d:1.0.0-javadoc
下,而将源代码发布在
a.b.c:d:1.0.0-sources
下。
publishing {
publications {
myPublication(MavenPublication) {
groupId 'com.example.project'
version '1.0.2'
artifactId 'myProject'
artifact("$buildDir/outputs/aar/mySDK-release-2.aar") {
// These values can also be specified in the task that generates the AAR.
classifier "q1"
}
artifact("$buildDir/outputs/aar/mySDK-release-1.aar") {
classifier "q2"
}
}
}
}
关于maven - 我可以在单个artifactId上发布多个 Artifact 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61521257/
POM 是否可以声明(或至少发布)artifactId包含系统属性?我的意思是实际项目的 artifactId,而不是依赖项。 我正在使用 maven 构建一个 scala 项目,因此,为了允许为不同
我有一个看起来像这样的依赖项: dependencies { apt 'io.sweers.barber:barber-compiler:1.3.0' compile 'io.swee
这个问题已经有答案了: How to add local jar files to a Maven project? (35 个回答) 已关闭 7 年前。 我想将“html2image”库添加到我的项
最近几天我尝试使用 webservices 和 jboss4,我偶然发现了以下问题: 我在我的 pom.xml 中包含了这个依赖: org.jboss jboss-jaxws
我想要一个父 pom 为众多子 pom 定义一些要继承的属性。但是,当我尝试在父 pom 的这些属性之一中使用 artifactId 时,它会在子 pom 的有效 pom 中重复。下面是非常基本的例子
The underlying mechanism used to indicate which version of Scala a library was compiled against is t
我使用Gradle构建项目(Java)。 Gradle 2.3,Java7/8。效果很好。 要构建项目,我们定义在编译,测试(testRuntime)和运行时阶段需要什么所有库,并在“依赖关系”部分定
我的gradle文件中有以下条目 dependencies { compile 'org.A:A:1.0' } 会下载“org.B:B:1.0”,因为这是依赖关系。(在gradle中未明确提及
在处理项目时,我的要求是创建一个模块。 该命令将类似于: mvn archetype:generate \ -DarchetypeCatalog=local \ -DartifactId=te
我需要构建不同类型的库,它们仅在 list 信息上有所不同。 制作不同的项目不是一个好主意,因为来源完全相同。 我尝试了模块 pom,但是子 pom 无法引用父源。 我也尝试过使用 artifactI
我正在使用 Maven 构建一些不同的 Web 项目,并考虑如何命名它们的 Artifact 。对于 REST API 层,共享一些类很方便,所以我想创建 exchange-api.jar 文件,这些
我是 Java 新手。我想从文档中创建一个网络服务“Implementing a simple OWS service ”,但在 pom 文件中有两个错误: Missing artifact org.
我正在将现有项目转换为 Maven 以进行构建/依赖项/等,并且我正在尝试弄清楚如何列出其依赖项。 我知道它使用的一堆包,但我不确定它们将包含在哪个 Artifact 中。groupId 很容易弄清楚
我已经使用 archetype:create-from-project 从多模块项目中创建了一个原型(prototype)。 archetype-metadata.xml 如下所示,我想要的是当我运行
我有一个 maven POM,我想将其用作模板,根据我传递给它的参数生成具有不同名称的 Artifact 。但我不知道如何在运行时指定 artifactId。 如果我参数化 像这样的元素: foo-$
我刚刚尝试在 Maven 中创建一个项目,其 artifactId 完全由非英文字符(“日本国”)组成。 我从 Maven 得到以下反馈: 错误] fatal error [信息] ---------
我正在使用 gradle 的出版物和 Artifactory 插件向 Artifactory 发布一个由不同模块组成的 SDK。 所有内容都已发布,所有模块都分组在 build 中使用我在 gradl
我正在上传一些 my-libs.zip到 S3 并且无法获得覆盖默认值的语法 artifactId .目前artifactId ,捡到的是project.name来自 settings.gradle
我对 Akka 的 Java API 版本控制约定很好奇,但我在他们的文档中找不到任何内容。 如果您访问 Maven 存储库并搜索可用的 akka-actor 版本,您将找到如下条目: 'com.ty
我有一个多模块项目,我想按照 Maven Reactor 的排列顺序获取 artifactId 列表。这可以通过 Maven 命令行来完成吗? 到目前为止,我已经掌握了部分信息 mvn validat
我是一名优秀的程序员,十分优秀!