运行maven build时出现错误(无法加载依赖项)。
[ERROR] Failed to execute goal on . . .
Could not transfer artifact my.group:libme1:${someVariable} from/to . . .
我相信发布此工件的开发人员应该设置变量${某个变量}
,但没有。我认为这是一个错误,但我正在尝试通过设置变量来解决它。
我所依赖的JAR的POM<code>my.group:libme1:1.2.3</code>如下所示(突出显示问题的片段):
<groupId>my.group</groupId>
<artifactId>libme1</artifactId>
<parent>
<groupId>my.group</groupId>
<artifactId>libme1-parent</artifactId>
<version>${someVariable}</version>
</parent>
我试图通过在命令行中添加-DsomeVariable=1.2.3
来定义它,但没有成功。例如
mvn -DsomeVariable=1.2.3 clean install
应该基于Baeldung的文章,但不是。
我还跑了:
mvn -DsomeVariable=1.2.3 help:effective-pom
我看到变量正在设置,所以我知道我使用的POM已经定义了这个值,但是由于某种原因,另一个POM没有获取该值(或者在我看来是这样的)。
有没有办法设置变量,以便它可以在另一个POM中使用?我猜这是不可能的。
寻找我找到的答案:
专家医生
如果您知道这是错误,请告诉我。我还联系了工件的发布,询问他们应该如何工作。
可能是变量存储在某个用户的settings.xml.
这将允许签出已经在生产中的旧版本来编写补丁。
<settings>
...
<profiles>
<profile>
<id>work-in-progress</id>
<properties>
<someVariable>1.2.3</someVariable>
</properties>
</profile>
</profiles>
<activeProfiles>
<activeProfile>work-in-progress</activeProfile>
</activeProfiles>
</settings>
所以你也可以这么做。并在用户目录中搜索.m2 repo目录,其中通常包含设置。存储xml。
基本上,依赖项的 pom 是无效的,原因如下:
maven
允许开发人员执行以下操作:
对依赖项施加限制
从开发的角度来看,上面提到的所有这些特性都非常方便,但是当您发布工件时,这些特性会导致后面的痛苦:如果没有父pom,就无法使用外部库,因为父pom可能会定义依赖项和属性。
在您的特定情况下,有人将父 pom 的版本定义为
${someVariable}
,这反过来意味着如果没有有关 ${someVariable}
值的信息,就不可能使用该库。但是,即使您已经知道${someVariable}
的“正确”值,并且可能通过系统属性指定它,这也会导致一些奇怪的行为:今天您可能会为${someVariable}
指定一个值,明天您(或其他人)将指定另一个值,最终您将获得不同的构建,由于该maven
拒绝这样的配置(这比构建不可靠的东西要好得多),最初拒绝发布这样的poms会更明智,但我们有我们所拥有的。
我当前有一个来自属性文件的变量,声明为: 在本例中,我希望在注释中使用,而不是硬编码常量“3”: 这有可能吗? 我试过: 但是我得到以下编译错误:
然而,IntelliJ IDEA抱怨“无法解析符号'env.my_var'”
问题内容: 我使用的父POM定义了我不想在子POM中运行的插件。如何完全禁用子pom中的插件? 约束:我不能更改父POM本身。 问题答案: 在禁用子POM中的Findbugs时,以下对我有用: 注意:Findbugs插件的完整定义在我们的父/超级POM中,因此它将继承该版本等。 在Maven 3中,您需要使用: 用于插件。
我想用Ansible复制大文件。目标服务器有一个具有足够存储空间的专用分区。我注意到ansible使用由remote_tmp变量定义的临时目录。 谢谢你的回答。
在另一个react组件中,如何使用存储mongoDB数据的变量,在该组件中,我们可以使用从mongoDB获取并存储在该变量中的数据。 从mongoDB中提取数据并将其存储在名为data的变量中的文件的代码 现在我想在另一个反应组件中使用这个数据变量,这样我就可以显示存储在数据变量中的数据
问题内容: 我正在尝试执行一个当前在phpMyAdmin中可用的查询,但是使用MySqlAdapter在.NET中执行该查询时不起作用。这是Sql语句。 它使用@rownum对从我的内部标量查询返回的每个不同的行进行编号。但是,如果我在.NET中使用它,则假定@rownum是一个参数并抛出异常,因为我没有定义它。 关于如何解决这个问题的任何想法?还是我获取行号的可能方法? 问题答案: 我发现此博客