标签: dependency-management

使用持续集成在Gradle中发布快照与发布版本

我正在学习Gradle,来自Ant + Ivy和Maven背景,我正试图围绕正确的方式来使用gradle发布我的软件的发布版本.我还需要不断地集成我的项目,而不必不断发布独立的工件.

Ant +常春藤

在Ant + Ivy世界中,我可以创建publishSnapshot和publishRelease目标.这些可以使用不同的常春藤解析器来解析和发布到我在Nexus中的单独快照或发布存储库.

Maven的

使用Maven,我可以定义一个snapshotRepositoryrepository在我的distributionManagement部分中将maven发布到我的单独快照或在Nexus中发布存储库.

摇篮

现在输入gradle.我怎样才能实现同样的功能?我正在使用常春藤风格的存储库.

感谢您提供的任何见解.

回答

感谢René在下面的回答,我终于能够创建一个可行的解决方案.问题的关键在于我需要不断整合我的所有项目.为此,我认为使用版本号声明依赖latest.integration是获取最新版本库的唯一方法,因此我需要使用常春藤样式存储库.

实际上,还有其他方法可以引入最新版本的库,以便在所有项目中不断集成我的软件.解决的办法是使用uploadArchives完全一样勒列出以下(也请注意,您将需要apply plugin: 'maven'为此工作.确保你的资料库也Maven的风格,并宣布的依赖时,您可以使用动态版本号如图所示这里.在我的情况是,我在common.gradle和下游项目中列出了一个全局版本号,我曾经version: version引用过全局版本变量.这样,我系统中的每个工件都有相同的版本.当它需要发布时,我可以将此值从1.0-SNAPSHOT更改为1.0并按顺序构建每个.

nexus dependency-management gradle

33
推荐指数
2
解决办法
3万
查看次数

Maven依赖解析和范围覆盖

放弃

(我最初在这里以非常详细的方式问过这个问题.我在这里摘录了它,因为maven-users邮件列表在这个问题上变得安静了.)(不仅仅是另一个新手问题)

参考

我的参考资料是 http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Management ; 如果这已经过时或错误,请在本次讨论中告诉我.

该文件中有一节以"第二个,非常重要......"开头.接下来,我将把该部分的项目AB,并从他们身上摘录.

在该部分中,您将看到该项目A有一个<dependencyManagement>部分 - 除其他外 - 定义工件,c具有范围compile:

<!-- In A's pom.xml; condensed for brevity -->
<dependencyManagement>
    <dependency>
        <groupId>test</groupId>
        <artifactId>c</artifactId>
        <version>1.0</version>
        <scope>compile</scope> <!-- look: compile scope -->
    </dependency>
</dependencyManagement>
Run Code Online (Sandbox Code Playgroud)

然后你会看到一个pom.xmlfor项目B,(a)继承自项目A(因此继承其dependencyManagement部分)和(b)建立对工件的依赖c,而不必指定它version.您还会注意到,在神器的依赖c覆盖的范围cruntime,不是compile:

<!-- In B's pom.xml, whose parent …
Run Code Online (Sandbox Code Playgroud)

dependency-management maven maven-ear-plugin

32
推荐指数
1
解决办法
3万
查看次数

Phing和Composer,哪个方向?

我想在我的应用程序中同时使用Phing和Composer.Phing作为构建系统和Composer来管理依赖项.但是应该使用哪种方式呢?

目前,我们正在所有服务器上全局安装Phing.Phing应该完全自动化我们各种项目的构建.只需签出项目的副本,使用默认目标运行Phing,你应该很好.这也意味着在那里应该有一个Phing目标,它要求Composer安装所有依赖项.所以,Phing叫作曲家.但我一直无法找到有关此设置的任何信息.没有ComposerTask或任何类似的东西,谷歌搜索并没有透露任何人这样工作.

但我确实看到了很多相反的方式.使用Composer的人将Phing安装为项目依赖项.

那么,每种方法的(dis)优势是什么?我试图从错误的方式做到这一点吗?

php phing build-automation dependency-management composer-php

31
推荐指数
2
解决办法
7084
查看次数

如何使用Web组件缓解JavaScript库膨胀?

作为一个试图找到一种方法来帮助内容作者通过创建(HTML)组件多年来开发和维护大型网站的人,我很高兴看到Web组件在w3c,google和mozilla上获得了关注.但在我看来,在规范中没有针对javascript库膨胀的措施.

假设我开发的组件A具有依赖性underscore.js并且想要使用组件B并且C依赖于lodash.js版本1.*等.
我没有看到任何标记依赖项和库版本的方法.当我们谈论有多个团队和利益相关者的网站时,这可能会导致巨大的图书馆膨胀.

目前的解决方案是在全球范围内对整个网站的批发客户框架进行标准化.当您在不同的服务器端框架LifeRay(如(java),EpiServer(.net),Django(python)等)中投入大量资源时,这很困难,每个框架都有首选的客户端库.

我认为Web组件是将服务器端框架与客户端代码分离的一种手段,但遗漏客户端依赖项处理是令人担忧的.

它是否符合规范,我已经错过了,或者是否有减轻这个问题的策略,我不知道?

[图书馆提到的只是示例.问题与框架,图书馆和服务器端语言无关]

更新 感谢大家回答.我很惊讶没有人提到Mozilla X-TagGoogle Polymer,这些都是最近的炒作.我完全接受了影子DOM,范围样式,自定义元素等的想法,但我没有看到任何关于如何处理JavaScript依赖关系的提及.正如@ Daniel-Baulig正确地写道,HTML Imports根本没有提到JavaScript.我承认这个问题几乎无法回答.但是,当他提到ES6模块时,我认为@ Daniel-Bailig是最接近的.我个人认为我们会在ES6模块和require.js之间找到一个可持续的解决方案.

javascript web-standards decoupling dependency-management web-component

31
推荐指数
2
解决办法
1840
查看次数

Maven中"提供"范围的"可选"依赖项

Maven有时候有点过头了......我创建了一个库,它对slf4j和log4j有可选的依赖.通过可选,我的意思是:

  • 我的库在编译时需要那些日志框架
  • 我的库在运行时不需要它们,但如果它"发现"它们,它将使用它们

目前,我已将该依赖标记为"可选"和"已提供":

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.16</version>
    <type>jar</type>
    <scope>provided</scope>
    <optional>true</optional>
</dependency>
Run Code Online (Sandbox Code Playgroud)

但是我的一些用户报告了问题,因为他们不需要log4/slf4j.我的依赖是否正确?不幸的是,我发现官方文档有点过于抽象,无法理解这个问题.

log4j dependency-management maven

30
推荐指数
1
解决办法
1万
查看次数

在Python中创建依赖关系图

我继承了一个庞大的代码库,我需要对其进行一些小改动.我想知道是否有实用程序可以解析python代码并在函数之间提供依赖关系,因为如果我对函数进行更改,我想确保我不打破其他函数,所以如果我能在图中看到它如图会让我的生活更轻松

python dependency-management call-flow

29
推荐指数
1
解决办法
1万
查看次数

如何部署OSGi应用程序和依赖项?

OSGi似乎通过不将大量JAR依赖项包装到lib目录中而具有小型可部署工件的优点.但是,我找不到任何能告诉我将依赖项部署到容器的简单可靠方法.例如,我有一个使用CXF和几个Spring子项目的应用程序.如果我需要将此应用程序部署到新的Glassfish服务器,那么最好的方法是什么,确保安装所有依赖项?

我正在使用Maven,似乎可以通过某种方式获得一个查看META-INF/maven目录的钩子并从pom.xml中提取依赖项列表并获取所需的库(可能来自当地的回购).有没有办法做到这一点?

Pax插件听起来像是在做这个,但它似乎是基于提升一个Felix容器?这不是我想要的,我正在处理已经运行的远程容器.

是否有任何镜头这样的东西存在作为命令行工具而不是GUI?

java osgi maven-2 dependency-management

28
推荐指数
1
解决办法
2万
查看次数

有没有办法从yum中检索依赖树?

为了减少XY问题的可能性,我正在尝试在严格限制的干净,虚拟RHEL5安装上安装PostGIS.我不知道我们(作为公司)是否有RH订阅.

# yum install postgis
Loaded plugins: product-id, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Setting up Install Process
No package postgis available.
Nothing to do.
Run Code Online (Sandbox Code Playgroud)

当我尝试安装时emacs,它会抛出相同的错误,所以我相对肯定我正在尝试安装哪个包并不重要.

VM可以访问Internet.

我想要做的就是为我指定的软件检索一个完整的依赖图(显然,即postgis).yum必须已经计算出这个依赖图(或者有一个可用于检索)来完成它的工作,那么我该如何利用这个资源呢?

dependencies yum package-managers dependency-management

27
推荐指数
3
解决办法
4万
查看次数

Haskell Stack从github安装包依赖

是否可以使用Haskell堆栈从github安装包的版本?

例如,在一个.cabal或一个stack.yaml文件中,如何在git repo/branch/revision中指向依赖?

haskell github dependency-management cabal haskell-stack

27
推荐指数
2
解决办法
4723
查看次数

如何在 docker 中使用诗歌?

如何在我的形象中注入诗意?(我应该使用吗pip?)

我应该使用哪个版本的诗歌?

我需要虚拟环境吗?

许多 例子观点提供了不同的 解决方案。

python virtualenv dependency-management docker python-poetry

27
推荐指数
2
解决办法
2万
查看次数