我花了太多时间试图解决这个问题.这应该是最简单的事情,每个在Java中分发Java应用程序的人都必须处理它.
我只是想知道向我的Java应用程序添加版本控制的正确方法,以便我可以在测试时访问版本信息,例如在Eclipse中调试并从jar运行.
这是我在build.xml中的内容:
<target name="jar" depends = "compile">
<property name="version.num" value="1.0.0"/>
<buildnumber file="build.num"/>
<tstamp>
<format property="TODAY" pattern="yyyy-MM-dd HH:mm:ss" />
</tstamp>
<manifest file="${build}/META-INF/MANIFEST.MF">
<attribute name="Built-By" value="${user.name}" />
<attribute name="Built-Date" value="${TODAY}" />
<attribute name="Implementation-Title" value="MyApp" />
<attribute name="Implementation-Vendor" value="MyCompany" />
<attribute name="Implementation-Version" value="${version.num}-b${build.number}"/>
</manifest>
<jar destfile="${build}/myapp.jar" basedir="${build}" excludes="*.jar" />
</target>
Run Code Online (Sandbox Code Playgroud)
这创建了/META-INF/MANIFEST.MF,我可以在Eclipse中调试时读取值:
public MyClass()
{
try
{
InputStream stream = getClass().getResourceAsStream("/META-INF/MANIFEST.MF");
Manifest manifest = new Manifest(stream);
Attributes attributes = manifest.getMainAttributes();
String implementationTitle = attributes.getValue("Implementation-Title");
String implementationVersion = attributes.getValue("Implementation-Version");
String builtDate = …Run Code Online (Sandbox Code Playgroud) 我向我的客户提供了一个小型Web服务API,我计划随着时间的推移而发展.所以我需要某种版本控制,但我找不到任何关于你是如何做这样的事情的信息.
有最好的做法吗?
如何在不破坏与Web服务使用者的兼容性的情况下继续添加新功能?
我想为我的Android应用程序创建一个PRO版本,并想知道如何构建我的存储库.
知道我有一个主干和功能分支.我想把专业版放在另一个分支中,但也许有更好的方法?例如,也许我应该创建两个分支 - 一个用于免费版本,另一个用于专业版本?
专业版将具有其他功能,并且将无广告,例如.我不想在专业版中包含AdMob库.
在这种情况下,您对构建存储库的最佳方法有什么经验或建议吗?
编辑:我想我已经在这个帖子中找到了最适合我应用的解决方案:http://groups.google.com/group/android-developers/browse_thread/thread/4ad3d67f735f16d7/948b4f9eee2490a3
这里讨论的技巧是关于另一个应用程序,它只用于解锁实际应用程序中的PRO功能.解锁应用程序在市场上支付,实际应用程序仅检查设备上是否存在该应用程序.
使用Maven进行软件版本控制和多模块项目的最佳实践是什么?
我的意思是,当我使用Maven创建一个多模块项目时,版本控制的最佳方法是什么?为所有模块使用单个版本(在顶部项目中定义)?要为每个模块使用一个版本(在每个模块的POM中定义)?我还缺少另一种方法吗?每种方法的优缺点是什么?
通常,不同的模块是否一起发布(可能共享相同的版本号)?
谢谢
我希望能够在构建期间将所有程序集的版本号指定为MSBuild命令参数,如下所示:
MSBuild.exe /p:version=5.4.3.0
Run Code Online (Sandbox Code Playgroud)
我已经看过了,AssemblyInfoTask但在这种情况下我似乎不是一个好的解决方案.
我们正在尝试一种为我们的应用指定版本号的新方法.我希望能够检查我们正在构建的IPA是否具有我们想要的版本号.如何从IPA中获取版本号?
注意 - 我不是要求从应用程序内部的代码中找到它的方法; 我打开了一个终端并构建了IPA文件,我想知道在IPA文件中要查找什么.
根据这个关于Java 9的新版本字符串方案的博客,该版本应该是,例如MAJOR.MINOR.SECURITY,应该有3个数字和2个句点.
但是,使用Azul的Zulu 9,当我打印Java版本时,它有4个数字和3个句点:
./jdk/bin/java -version
openjdk version "9.0.0.15"
OpenJDK Runtime Environment (Zulu build 9.0.0.15+181)
OpenJDK 64-Bit Server VM (Zulu build 9.0.0.15+181, mixed mode)
Run Code Online (Sandbox Code Playgroud)
4个数字代表什么?
在 4 年前的问题Docker 镜像版本控制和生命周期管理之后,因为恕我直言,它没有正确解决Docker 镜像的版本控制问题 :
我认为这个答案不够充分,因为同一个标签可能有连续的版本。我们需要一种能够将依赖关系锁定到特定标签版本的方法。
并且,
答案是不要使用
latest.
我在网上找到的“解决方案”也令人困惑。例如,
那么,如何正确地对 Docker 镜像进行版本控制(在本地以及在推送/发布到 docker hub 时)?
修正:
到目前为止,有两个答案。感谢那。
因为我确实需要将我的 docker 镜像推送/发布到 Docker 存储库,并且从这里开始暗示latest如果您使用特定的 ID 标记,在拉取最新版本时不使用会给您带来麻烦。此外,使用git的短版本ID可能是内部使用的一个很好的解决方案,但是当发布docker镜像供公众使用时,它可能不是最好的解决方案。
我们有2个独立的产品需要通过Web服务相互通信.支持API的自动化的最佳实践是什么?
我从2004年开始这篇文章声称没有实际标准,只有最佳实践.更好的解决方案?你如何解决WS版本问题?
class SystemAClient{
SystemBServiceStub systemB;
public void consumeFromB(){
SystemBObject bObject = systemB.getSomethingFromB(new SomethingFromBRequest("someKey"));
}
}
Run Code Online (Sandbox Code Playgroud)
class SystemAService{
public SystemAObject getSomethingFromA(SomethingFromARequest req){
return new SystemAObjectFactory.getObject(req);
}
}
Run Code Online (Sandbox Code Playgroud)
版本1
class SystemAObject{
Integer id;
String name;
... // getters and setters etc;
}
Run Code Online (Sandbox Code Playgroud)
版本2
class SystemAObject{
Long id;
String name;
String description;
... // getters and setters etc;
}
Run Code Online (Sandbox Code Playgroud)
版本1
class SomethingFromARequest {
Integer requestedId;
... // getters and setters etc;
}
Run Code Online (Sandbox Code Playgroud)
版本2
class …Run Code Online (Sandbox Code Playgroud) 我正在使用git作为版本控制系统的第一次.我正在开始一个新项目,因此要对项目中使用的技术进行一些实验(你好世界的例子......)我想创建类似"游乐场"分支的东西.创建一个新的分支"playground"是常见的还是我应该在master分支中创建一个名为playground的文件夹?
问候
versioning ×10
web-services ×2
android ×1
ant ×1
architecture ×1
azul-zulu ×1
branch ×1
docker ×1
git ×1
ios ×1
iphone ×1
jar ×1
java ×1
java-9 ×1
manifest.mf ×1
maven ×1
msbuild ×1
multi-module ×1
version ×1
wsdl ×1