jip为Jython和Python安装包
项目描述
Jip是Jython的pip等效工具。它将解决依赖关系并为您的Jython环境下载jar文件。
许可证
jip本身根据MIT许可证分发。
安装
jip建议在virtualenv中运行,这是Python/Jython开发人员创建独立、便携环境的最佳实践。从jip 0.7开始,您可以使用jip.embed进行全局安装。
在virtualenv中安装jip
使用Jython创建virtualenv
virtualenv -p /usr/local/bin/jython jython-env
激活shell环境
cd jython-dev source bin/activate
使用pip下载和安装jip
pip install jip
全局安装jip(自0.7版起)
从pypi页面下载jip。然后使用setup.py安装它
jython setup.py install
用法
安装Java包
jip 将解析依赖项并从 Maven 仓库下载 JAR 文件。您可以使用 jip 安装 Java 包,就像使用 pip 安装 Python 包一样。
jip install <groupId>:<artifactId>:<version>
以 Spring 为例
jip install org.springframework:spring-core:3.0.5.RELEASE
解析 pom 文件中定义的依赖项
jip 允许您在 Maven pom 文件中定义依赖项,这比逐个输入安装命令更易于维护。
jip resolve pom.xml
解析构件的依赖项
使用 jip,您可以解析和下载构件的所有依赖项,而无需获取该构件本身(只要构件可下载,例如,只是一个普通的 pom 文件)。这在您即将为构件设置环境时特别有用。此外,jython 包的 Java 依赖项也是以这种方式定义的。
jip deps info.sunng.gefr:gefr:0.2-SNAPSHOT
更新快照构件
您可以使用 update 命令查找和下载新部署的快照。
jip update info.sunng.bason:bason-annotation:0.1-SNAPSHOT
使用路径中已安装的 Java 包运行 jython
另一个名为 jython-all 的脚本随 jip 一起提供。要使用路径中包含的 Java 包运行 jython,请使用 jython-all 而不是 jython。
列表
使用 jip list 查看您刚刚安装的构件。
移除包
建议您使用 jip remove 来移除构件。这将使库索引与文件系统保持一致。
jip remove org.springframework:spring-core:3.0.5.RELEASE
目前,在移除构件时没有依赖项检查。因此,在使用此命令时请小心。
清理
jip clean 将删除您下载的所有内容,请谨慎使用。
搜索
您还可以使用 jip search [keyword] 在 Maven Central 仓库中进行搜索。搜索服务由 Sonatype 的官方 Maven 搜索 提供。
持久化当前环境状态
在您分发环境之前,您可以使用 freeze 将当前状态持久化到 pom 文件中。
jip freeze > pom.xml
配置
您可以使用点文件配置自定义 Maven 仓库,jip 将按以下顺序搜索配置:
$VIRTUAL_ENV/.jip_config,您的虚拟环境主目录
$HOME/.jip_config,您的家目录
以下是一个示例
[repos:jboss] uri=http://repository.jboss.org/maven2/ type=remote [repos:local] uri=~/.m2/repository/ type=local [repos:central] uri=https://repo1.maven.org/maven2/ type=remote
请注意,.jip_config 文件将覆盖默认设置,因此您必须显式包含默认本地和中央仓库。jip 一旦找到匹配 Maven 协调器的包,就会跳过仓库。
构件将缓存在 $HOME/.jip(如果您使用虚拟环境,则为 $VIRTUAL_ENV/.jip)。
从 0.4 版本开始,如果您使用 resolve 命令,您也可以在 pom.xml 中定义仓库。jip 将以最高优先级添加这些自定义仓库。
分发助手
从 0.4 版本开始,您可以在 setup.py 中使用 jip 来简化 jython 源代码包的分发。在 setup.py 所在目录中创建 pom.xml。以标准方式填写您的 Java 依赖项。在此文件中,您还可以定义自定义仓库。以下是一个示例
<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/maven-v4_0_0.xsd"> ... <dependencies> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.6.1</version> </dependency> ... </dependencies> <repositories> <repository> <id>sonatype-oss-sonatype</id> <url>http://oss.sonatype.org/content/repositories/snapshots/</url> </repository> </repositories> </project>
在您的 setup.py 中,使用 jip setup 包装器代替 setuptools 或 distutils 提供的包装器。您可以使用关键字参数 pom 来指定 pom 文件的自定义名称。
from jip.dist import setup
除了传统的 pom 配置之外,jip 还允许您以 Python 的方式描述依赖项。您可以在 setup.py 中定义一个数据结构,如下所示
requires_java = { 'dependencies':[ ## (groupdId, artifactId, version) ('org.slf4j', 'slf4j-api', '1.6.1'), ('org.slf4j', 'slf4j-log4j12', '1.6.1'), ('info.sunng.soldat', 'soldat', '1.0-SNAPSHOT'), ('org.apache.mina', 'mina-core', '2.0.2') ], 'repositories':[ ('sonatype-oss-snapshot', 'http://oss.sonatype.org/content/repositories/snapshots/') ] }
并将其传递给 jip setup 作为关键字参数 requires_java。一旦 jip 发现此参数,它将不会尝试加载 pom 文件。
from jip.dist import setup setup( ... requires_java=requires_java, ...)
setuptools 中还添加了另一个 resolve 命令,您可以使用此命令将所有依赖项下载到库路径。
jython setup.py resolve
所有依赖项将在运行时安装
jython setup.py install
因此,使用jip的setup()包装器,pip将自动安装您的包所需的依赖项。您可以将您的包发布到Python Cheese Shop,并且只有一个命令就可以完成所有操作。
pip install [your-package-name]
嵌入式依赖项助手
jip.embed可用于虚拟环境和全局安装。您可以在代码中描述Java依赖项,然后它将自动解析。jip.embed灵感来源于Groovy的@Grab。
from jip.embed import require require('commons-lang:commons-lang:2.6') from org.apache.commons.lang import StringUtils StringUtils.reverse('jip rocks')
联系方式
如果您在使用jip时遇到任何问题或对jip有功能请求,请随时在GitHub问题跟踪器上提交问题。您也可以在twitter上关注@Sunng。
变更记录
下一版本 - 未发布
0.9.16 - 2022-12-20
0.9.15 - 2020-06-04
修复从本地仓库下载时的编码错误
0.9.14 - 2020-05-25
添加Python 3.7兼容性
如果未知仓库类型,则优雅地失败
Maven中心迁移到HTTPS
0.9.13 - 2017-07-23
为install命令添加了copy-pom选项
0.9.12 - 2017-03-20
修复下载包含元音符号的POM时的错误
删除jip.JIP_VERSION。如果您需要,请使用jip.__version__
0.9.11 - 2017-03-11
改进下载错误处理
0.9.10 - 2017-03-09
修复虚拟环境中.jip/cache未隔离的问题
0.9.9 - 2016-10-31
修复可能崩溃的问题
0.9.8 - 2016-07-27
一些小修复
0.9 - 2015-04-23
Python 3支持
0.8 - 2014-03-31
Windows支持
0.7 - 2011-06-11
所有新的jip.embed和全局安装
增强搜索
为install、deps和resolve添加了dry-run选项
为install命令和jip.dist添加了排除选项
默认禁用本地Maven仓库
改进依赖项解析速度
jip现在在$HOME/.jip/cache/中维护jar和pom的本地缓存
使用argparse以获得更好的命令行UI
添加一些测试用例
0.5.1 - 2011-05-14
并行下载 artifact jar 包
在http请求中包含User-agent头
添加新命令freeze以转储当前状态
错误修复
0.4 - 2011-04-15
新增命令:search、deps、list、remove
新增功能jip.dist以实现setuptools集成
支持依赖项排除,感谢vvangelovski
允许在pom.xml和setup.py中定义项目范围的仓库
代码重构,现在编程友好
将README转换为reStructuredText
迁移到MIT许可证
0.2.1 - 2011-04-07
改进控制台输出格式
正确处理依赖项管理继承的范围
快照管理alpha版本,您可以更新快照 artifact
环境无关配置。每个环境一个.jip
错误修复
0.1 - 2011-01-04
初始版本
链接
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
构建分布
jip-0.9.16.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1ca527ed4d44b923234d8ec264a48b1a740723a26a96e99c3cde95ea0a1c44ca |
|
MD5 | 37ae94721443cb07fb45ff10dc3169e7 |
|
BLAKE2b-256 | 29812eb4af38df19e45a27542144783b42b9bf77c903814b4d82385040d6a8d1 |
jip-0.9.16-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b7426251145abcfe4d144f867657269f6d0399ad6986f242af98441852cfa471 |
|
MD5 | 3c0d3c0c08b4a4cfc8156c3c0d966445 |
|
BLAKE2b-256 | 78e7260b6b128b05f2ecc829251229f88c167814d0951d9e509d16bdaec514b4 |