我有一个项目,它有一个共享码
(Java)模块,其次是一个Android
(Android库)模块,它依赖于共享码
模块。我以前一直在我的build.gradle
文件中使用maven
插件,并且我一直在使用该插件的uploadArchives
任务来发布我的两个模块中的工件。这已经工作并产生了pom文件,这些文件反映了我的build.gradle
文件中的依赖项。
我想我会用新的maven-publish
插件替换旧的maven
插件。但是,我看到maven发布
插件生成的pom文件不包含任何依赖项。这是设计使然,这是插件中的错误还是我错误地使用了插件?
我的SharedCode
模块中的build.gradle
文件如下:
apply plugin: 'java'
apply plugin: 'maven-publish'
group = "${projectGroupId}"
version = "${projectVersionName}"
dependencies {
compile 'com.google.guava:guava:18.0'
}
publishing {
publications {
SharedCode(MavenPublication) {
groupId "${projectGroupId}"
artifactId 'SharedCode'
version "${projectVersionName}"
artifact("$buildDir/libs/SharedCode-${projectVersionName}.jar")
}
}
}
我的Android
模块中的build.gradle
文件如下:
apply plugin: 'com.android.library'
apply plugin: 'maven-publish'
group = "${projectGroupId}"
version = "${projectVersionName}"
android {
// android stuff here...
}
dependencies {
compile project(':SharedCode')
}
publishing {
publications {
Android(MavenPublication) {
groupId "${projectGroupId}"
artifactId 'Android'
version "${projectVersionName}"
artifact "$buildDir/outputs/aar/Android-release.aar"
}
}
}
从<code>SharedCode</code>模块创建的pom文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.sdk</groupId>
<artifactId>SharedCode</artifactId>
<version>0.0.2</version>
</project>
从< code>Android模块创建的pom文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.sdk</groupId>
<artifactId>Android</artifactId>
<version>0.0.2</version>
<packaging>aar</packaging>
</project>
请注意 pom 文件中缺少依赖项。
使用fromcomponents.java
而不是工件...
行在java项目的出版物
部分中。这应该会自动生成pom中的依赖项。
android项目没有被视为标准java项目,这使得它有点棘手。您可以使用<code>pom创建自己的依赖项部分。使用XML{},然后遍历依赖项列表。或者,有一个gradle插件可以为您实现这一点。
我在尝试部署web应用程序时遇到以下错误: 在注入点[BackedAnnotatedField]处具有限定符@Default\n的AuthzInfo类型的依赖项不明确 可能的依赖项:\n-Producer方法[AuthzInfo],其限定符[@Any@Default]声明为[[BackedAnnotatedMethod]@producers@RequestScoped 我只创造了一个这样的制作人:
我正在尝试编译几个WAR文件,所有这些都依赖于一个公共的JAR模块。然而,在我的Gradle构建中,我似乎无法获得类似于“提供”的依赖关系来使用Java插件。 然而,最后这一位将生成具有适当依赖关系的变量newRuntime,然而,当我试图将该变量重新分配回运行时配置时,它抛出一个“无法找到属性异常”。 我在Gradle的bug跟踪中发现了很多关于这个问题的讨论:Gradle-784 然而,这方面
我正在尝试得到一个新的项目,并使用一个私人的artifactory gradle repo运行。我能够通过artifactory获得它解析工件,但是当我尝试将spring io&boot引入混合时,spring依赖项管理插件似乎没有在请求依赖项时添加版本,导致构建失败: 我可以在https://my-website.com/artifactory/gradle-release/org/spring
我们有一个多模块maven项目,它最近由Ant Ivy转换而来。其中一个模块是一个遗留的自定义可插入组件,它在类路径上查找插件并加载它们。多模块项目中的另一个模块是由上述插件运行的插件实现。 当从eclipse运行配置运行自定义应用程序服务器时,我们必须在类路径上包含每个插件。当我们在eclipse工作区中构建时,这些插件并没有编译成jar。因此,没有要包含的jar工件。 如果我将插件模块项目作为
我想问一下URLClassLoader。我写了一篇主要的文章。运行良好的jar文件。现在我想让它能够从它的一个文件夹加载插件。我写了它,直到它找到了答案。jar文件在文件夹中,可以在其中列出它们的类(它们的名称、路径)。问题是,当我要求他查找该类(用于创建它的实例)时,他们找不到它从我的主jar文件继承的类,如下所示: 因此,当我要求UrlClassLoader解析“ExpansionA”类时,它
我是和的新手。我正在尝试在远程计算机上运行hdfs MapReduce作业。我没有写入/编辑依赖项文件的权限。我想知道是否可以将我的Maven项目传递给我的MapReduce作业。这样,我就不需要SSH进入远程机器并更改maven项目的依赖关系。我将使用包含远程计算机上未包含的所有所需依赖项的JAR来运行我的MapReduce作业。