- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Gradle 中的问题
我有这个 build.gradle
在名为 proj
的目录中:
apply plugin: 'java'
apply plugin: 'java-library-distribution'
repositories {
mavenCentral()
}
dependencies {
compile 'com.davfx:util:1.0.0'
compile 'org.johnnei:util:1.0.0'
}
gradle installDist
并找到目录
build/install/proj/lib
只包含一个
util-1.0.0.jar
.我期待两个
util-1.0.0.jar
文件,但我认为由于文件系统的工作方式,这是不可能的。
pom.xml
,然后运行
mvn dependencies:copy-dependencies
在同一个目录中。观察
target/dependency
目录只包含一个文件
util-1.0.0.jar
.但是,与 Gradle 不同的是,Maven 可以通过
prependGroupId 解决这个问题。 . (信用在评论部分归功于图纳基。)
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.spacetimecat</groupId>
<artifactId>example</artifactId>
<version>0.0.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.davfx</groupId>
<artifactId>util</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>org.johnnei</groupId>
<artifactId>util</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</project>
G:A:1.2.3
, H:A:1.2.3
, P
这取决于这两者。我只有一个
web-1.7.0.jar
当我组装一个分发包(一个包含我的项目 jar 及其所有可传递依赖项的包)时的文件。问题是:依赖项中的 jar 文件之一被覆盖,因为它们具有相同的文件名,因为 Gradle/Maven 默认将这些 jar 命名为
artifactId-version-classifier.jar
,虽然他们有不同的组。
最佳答案
这很困惑,但您可以针对 tempCompile
声明您的依赖项配置然后添加一个 renamejars
任务到DAG
将 jar 重命名为 $buildDir/renamedJars
目录。 compile
然后配置可以包含来自 $buildDir/renamedJars
的 jars目录。
重要 - 此解决方案将丢失所有依赖项的组/工件/版本,这意味着下游项目将无法执行依赖项解析。
configurations {
tempCompile
}
dependencies {
tempCompile 'com.davfx:util:1.0.0'
tempCompile 'org.johnnei:util:1.0.0'
compile fileTree("$buildDir/renamedJars")
}
task renameJars {
inputs.files configurations.tempCompile
outputs.dir "$buildDir/renamedJars"
doLast {
mkdir "$buildDir/renamedJars"
ResolvedConfiguration rc = configurations.tempCompile.resolvedConfiguration
Set<ResolvedArtifact> artifacts = rc.resolvedArtifacts
artifacts.each { ra ->
ModuleVersionIdentifier mvi = ra.moduleVersion.id
copy {
from ra.file
into "$buildDir/renamedJars"
rename { old ->
return "${mvi.group}-${mvi.name}-${ra.classifier}-${mvi.version}.${ra.extension}"
}
}
}
}
}
compileJava.dependsOn renameJars
关于gradle installDist : How do I prepend the group id to dependency jar name (clashing due to different group id but same artifact id and version)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42174572/
首先,我知道如何解决该问题,我只是想了解为什么会发生此问题。错误信息: users.profile: Reverse query name for field 'address' clashes wi
过去一周,我一直在通过基础教程学习 HTML 和 CSS,并一直在尝试重新创建我多年前使用 Squarespace(一个简单的构建器)创建的网站。昨天我无法添加图像链接,但通过添加 div 标签实现了
我有一个很大的代码库,其中包括两个主要的命名空间:引擎和应用程序。 引擎将一个 vector3 类定义为另一个 vector3 类的 typedef,具有位于引擎命名空间而不是 vector3 类中的
假设我们有一个具有以下方法的 istream 子类: SomeStream& operator>>(Something& something) { // .. write data into
struct Message { char type; double idNum; char *Time; char *asset; bool BS;
我一直在研究 Chisel 以及各种 Lavas(Kansas、Chalmers 和 Xilinx 口味)和 CLaSH 的来源。我试图了解 Chisel 与其他产品的主要卖点是什么。我发现的主要方法
我不断收到错误 403 无效授权, token 完全正确。还有其他人使用 Clash API 吗?到目前为止找不到任何可用的代码。 这是我用于测试请求的代码: import java.io.*; im
我正在尝试使用 Swipe JS 2使用 jQuery Mobile(仔细考虑注释 here )。 但是,我发现尝试使用 float: left 时存在冲突问题。我不能干扰 Swipe JS 2 引用
我在 tblEmployee 中有一个用于存放员工照片的图像字段。 当我尝试在 uploader 中保存没有图像文件的员工详细信息时,它抛出错误 "Operand type clash: nvarch
最近在一个项目中升级了eclipse和java版本,出现了一些错误。我尝试重现并发现以下设置导致使用 Java 1.8 的 Eclipse Oxigen.3a (4.7.3a) 中出现错误,而同样适用
运行 FitNesse 测试时经常会出现以下错误消息(至少在五次运行中至少有一次): Unable to start test system 'slim': fitnesse.slim.SlimErr
当我 syncdb 时,我收到许多这样的错误: transcription.transcription1: Accessor for field 'participant_content_typ
我已经实现了 SSO for tomcat在 config.xml 中使用阀门,但是我所有的应用程序都使用一个领域,而服务器 (geronimo) 使用另一个领域。 自从引入这个之后,他们现在发生了冲
尝试在我的 tomcat 实例的 context.xml 中设置几个 JDBC 连接,但很难理解为什么有些名称似乎冲突。 通过名称的一些组合,我得到以下结果: java.lang.ClassCastE
我有很多具有投票功能的模型,所以我创建了一个这样的结构: class Voteable(models.Model): likes_balance = models.IntegerField(d
我正在创建一个覆盖方法签名的类,该方法签名的删除在 2 个已实现的接口(interface)之间是相同的,但在泛型类型方面有细微差别(一个是方法推断类型,另一个是推断类类型) .我正在寻找一个简洁的解
我正在使用 CakePHP 3.2。我有两张 table service_requests和 coupon_historyservice_requests table CREATE TABLE `se
首先,我只能编辑代码的 CSS/LESS 部分。 我遇到了一个问题,有一个 span 在 :hover 上添加了背景颜色,单击它时有不同的背景,它通过 JS 获得了一个 .active 类。 问题是,
我有一个表,我试图返回特定日期的 Time 和 Productno 列。当我尝试以下 SQL 命令时,它返回错误:“操作数类型冲突:日期与 int 不兼容”。 我在论坛上进行了研究,这是大多数人实现类
from os import system system("ping www.twitter.com") system("ping www.yahoo.com") system("ping www.f
我是一名优秀的程序员,十分优秀!