【问题标题】:How to change behavior according to maven/gradle scope?如何根据 maven/gradle 范围改变行为?
【发布时间】:2020-04-08 06:01:43
【问题描述】:

如何让 maven/gradle 包改变它的作用域导出的内容?可能吗? 喜欢,这样使用

<dependency>
  <groupId>org.blahblah</groupId>
  <artifactId>anything</artifactId>
  <version>5.8</version>
  <scope>test<scope/>
</dependency>

通过另一种方式获取不同的二进制文件

[...]
  <scope>compile<scope/>
[...]

【问题讨论】:

  • 我不知道你想问什么。请举个具体的例子?

标签: java maven gradle


【解决方案1】:

是和不是 - 有点。

一般的指导方针是为每个 pom.xml 创建一个工件 - 大多数工具都非常适合这个概念。一旦你超越,有时会发生一些时髦的事情。仅通过范围更改 jar 是不可能的 afaik。也会让人很困惑。并且可能会使故障排除变得非常困难。

但是有一个解决方法。正如您提到的测试:jar 插件允许您将 src/test/java 中的类导出为 test-jar 并将其用作指定类型的依赖项。

How to create a test-jar

我假设与类型相同的机制也可以用于其他事情。

还有分类器的概念(这通常用于源代码、javadoc 等)。见this question

虽然这些东西往往在命令行上与 maven 一起工作,但如果你将类型和分类器的使用推得太远,IDE 有时会开始表现得有些奇怪。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-09
    • 2014-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多