目前我有一个java项目,我应该支持它的不同版本,它使用不同版本的Java(以及一些工具,如Ant)。取决于问题票证,我需要处理两个 java 版本(7 和 8),并且经常在它们之间切换。有人可以建议更容易处理的最佳方法吗?我正在 Windows 7 上工作,所以我编写了这样的用于切换的bat文件(“switch_java.bat”):
@ECHO OFF
set changeToNewVersion=%1
IF "%changeToNewVersion%"=="true" (
setx /M ANT_HOME "c:\Program Files\Ant\apache-ant-1.9.4"
setx /M JAVA_HOME "c:\Program Files\Java\jdk1.8.0_51"
) ELSE IF "%changeToNewVersion%"=="false" (
setx /M ANT_HOME "c:\Program Files\Ant\apache-ant-1.8.3"
setx /M JAVA_HOME "c:\Program Files\Java\jdk1.7.0_79"
) ELSE (
echo ERROR: Enter key!
)
Run Code Online (Sandbox Code Playgroud)
但也许还有更优化的解决方案?
我试图找到一种方法来列出jar文件的(静态)依赖性要求,根据运行时需要的符号.
我可以看到类导出的方法可以使用"javap"列出,但似乎没有相反的工具来列出'imports'.是否有可能做到这一点?
这与Windows开发中的dumpbin实用程序类似,可用于列出DLL的导出和导入.
编辑:感谢您的回复; 我检查了所有的建议; 接受了DependencyFinder,因为它最符合我的要求.
我正在使用UIBinder在GWT上开发一个应用程序,我遇到了问题.在我的用户界面中可以有很多相同的元素(例如小部件).所有元素都必须具有捕获鼠标单击事件的处理程序.我想编写一个通用处理程序,它将能够识别导致事件并处理它的窗口小部件.现在我为每个对象都有一个小部件来描述同一个处理程序.我怎么解决这个问题?
我正在尝试在 Spark 中实现 K-最近邻算法。我想知道是否可以使用嵌套的 RDD。这会让我的生活轻松很多。考虑以下代码片段。
public static void main (String[] args){
//blah blah code
JavaRDD<Double> temp1 = testData.map(
new Function<Vector,Double>(){
public Double call(final Vector z) throws Exception{
JavaRDD<Double> temp2 = trainData.map(
new Function<Vector, Double>() {
public Double call(Vector vector) throws Exception {
return (double) vector.length();
}
}
);
return (double)z.length();
}
}
);
}
Run Code Online (Sandbox Code Playgroud)
目前我遇到了这个嵌套设置的错误(我可以在这里发布完整的日志)。是否允许在拳头位置?谢谢
就我而言,我将大量记录上传到 Redis 排序集,但我只需要存储 10 个得分最高的项目。我无法影响上传的数据(在上传之前对其进行排序和限制)。
目前我只是执行
ZREMRANGEBYRANK key 0 -11
Run Code Online (Sandbox Code Playgroud)
上传完成后,但这种方法看起来不是很理想(它很慢,如果Redis可以处理它会更好)。
那么Redis是否提供了一些开箱即用的东西来限制排序集中的项目数量?
我读到了Kotlin数据类,并认为它们在描述数据传输对象(DTO)的情况下非常有用.在我的Java项目中,我已经有了用Java编写的DTO类,类似于:
public class Tweet {
private String id;
private String profileId;
private String message;
public Tweet() {}
public String getId() {
return id;
}
public String getProfileId() {
return profileId;
}
public String getMessage() {
return message;
}
public void setId(String id) {
this.id = id;
}
public void setProfileId(String profileId) {
this.profileId = profileId;
}
public Tweet setMessage(String message) {
this.message = message;
return this;
}
}
Run Code Online (Sandbox Code Playgroud)
这些DTO类存储在单独的工件中,我将其添加为其他工件的依赖项.所以,我决定用Kotlin类替换它,并在Kotlin上重写了提到的Tweet类,所以它开始看起来像:
data class Tweet(var id: String? = null,
var profileId: String? = …Run Code Online (Sandbox Code Playgroud) 在我的项目中,我配置了 Travis CI 构建过程,该过程将新版本的工件发布到 Github 版本。我的.travis.yml文件:
language: java
jdk: oraclejdk8
branches:
only:
- master
before_install: mvn package
before_deploy:
- export TRAVIS_TAG="1.$TRAVIS_BUILD_NUMBER"
- echo "$TRAVIS_TAG" "$TRAVIS_COMMIT"
- git config --local user.name "$USER_NAME"
- git config --local user.email "$USER_EMAIL"
- git tag "$TRAVIS_TAG" "$TRAVIS_COMMIT"
deploy:
provider: releases
tag_name: $TRAVIS_TAG
target_commitish: $TRAVIS_COMMIT
name: $TRAVIS_TAG
overwrite: true
skip_cleanup: true
api_key: $GITHUB_TOKEN
file_glob: true
file:
- target/my-artifact-$TRAVIS_TAG.jar
on:
branch: master
notifications:
email:
on_success: never
on_failure: always
Run Code Online (Sandbox Code Playgroud)
我想添加将工件部署到 Heroku 的能力,为此我添加了第二个项目deploy,这个:
provider: heroku …Run Code Online (Sandbox Code Playgroud) continuous-integration github continuous-deployment continuous-delivery travis-ci
在项目中,我们使用一些AWS服务,例如AWS Lambda,EC2,AWS API Gateway,ElastiCache等。此外,我们还有CloudFormation模板,该模板描述了整个基础架构。随着项目的开发,我们开始使用一些新的AWS服务或更改一些已使用的服务的配置。此外,我们还应该使CloudFormation模板保持最新。
在这里,我们面临一个问题,我们需要确保我们的CloudFormation模板有效,正确,并且在需要时可以使用它来创建基础架构。在这种情况下,我们需要对模板进行连续测试。哪种方法更合适?
我们是否应该在持续集成过程中从CloudFormation模板配置自动创建堆栈,并跟踪存储库中的模板更改?还是有更好的解决方案?
continuous-integration amazon-web-services continuous-testing aws-cloudformation infrastructure-as-code
如何将现有的,配置的和经过测试的AWS CloudWatch警报导出到Cloudformation模板?
我知道CloudFormer工具,但它支持数量有限的AWS服务(Amazon VPC,DynamoDB等),并且不支持我们使用的某些服务。我可以使用哪些工具和方法来生成Cloudformation模板?
amazon-web-services aws-cloudformation amazon-cloudwatch infrastructure-as-code