小编mha*_*ler的帖子

Maven Assembly Plugin未设置MainClass清单设置

我有一个maven项目,它通过我希望作为控制台应用程序运行的maven程序集插件生成一个jar .但是,未在MANIFEST.MF中设置MainClass属性.这是我的插件配置:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.2.1</version>
            <configuration>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <archive>
                    <manifest>
                        <mainClass>net.justaprogrammer.poi.cleanser.Cleanser</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
Run Code Online (Sandbox Code Playgroud)

但是,这不会被添加到生成的jar中的MANIFEST.MF中mvn package.生成的清单如下:

Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: zippy
Build-Jdk: 1.6.0_25
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

maven-2 maven-assembly-plugin

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

每个模块使用svn标签进行Maven发布设置

目标

多模块maven版本,每个模块带有标签

情况

假设基于Maven的Java项目的以下项目结构:

xx-parent
xx-moduleA
xx-moduleB
xx-moduleC/submodule1
xx-moduleC/submodule2
xx-moduleC/submodule3
Run Code Online (Sandbox Code Playgroud)

Subversion中的项目结构如下:

xx-parent/trunk
xx-moduleA/trunk
xx-moduleB/trunk
xx-moduleC/trunk/submodule1
xx-moduleC/trunk/submodule2
xx-moduleC/trunk/submodule3
Run Code Online (Sandbox Code Playgroud)

我的目标是在执行发布时为每个模块创建标记:

xx-parent/tags/xx-parent-1.0
xx-moduleA/tags/xx-moduleA-1.0
xx-moduleB/tags/xx-moduleB-1.0
xx-moduleC/tags/xx-moduleC-1.0
Run Code Online (Sandbox Code Playgroud)

过去,每个模块都是单独构建和发布的.随着项目规模的扩大(30个模块),构建版本的时间增加了.我想将项目更改为多模块设置以执行反应堆构建和发布.构建似乎不是问题,但每个模块创建标签是.

maven-release-plugin似乎坚持只为整个项目/发布制作一个标签.我正在寻找一种创建多个标签的方法,例如每个模块的标签.

到目前为止我尝试过的

  • 创建一个xx-all Subversion别名,检查所有子模块,以便我可以引用它们 <module>../xx-moduleB</module>
  • 启用commitByProject,它为每个模块提交,但不为每个模块标记.看到
  • 每个模块都有自己的<scm>元素pom.xml,但在执行反应器释放时不会使用它们.
  • mvn --batch-mode -DcommitPerProject=true -DautoVersionSubmodules=true -Drelease.version=1.0.6 release:prepare release:perform

问题

  • maven-release-plugin不会为每个模块创建一个svn标记
  • maven-release-plugin <scm>用无效的URL 覆盖标记,例如xx-parent标记下的嵌套"trunk"-tags

如何使用Maven发布流程,多模块布局设置此项目,并且每个模块仍然可以获得单独的标签?

参考

http://jira.codehaus.org/browse/MRELEASE-261 (已关闭)和MRELEASE-561(开放)

svn tagging maven multi-module maven-release-plugin

6
推荐指数
1
解决办法
1606
查看次数

其他SecurityManager实现可用吗?

Java SecurityManager是否有任何其他实现(例如在OSS项目中)可用,它具有比JDK更多的功能?

我正在寻找像这样的功能

  • 可在运行时配置
  • 策略在运行时可更新,从security.policy文件以外的其他数据源读取
  • 线程感知,例如每个线程不同的策略
  • 更高级别的策略,例如"禁用网络功能,但允许JDBC流量"
  • 常见的预定义策略,例如"允许对通常的系统属性进行读取访问,例如file.encodingline.separator禁止对user.home的读访问"
  • 监视和审计跟踪日志记录,例如"记录所有文件访问,记录所有网络访问权限不归于knownhost.example.org"
  • 阻止作业"请求"权限,直到管理员授予权限,让线程/作业继续
  • ...

我很确定应用程序服务器(至少是商业服务器)有自己的SecurityManager实现或至少有自己的策略配置.我想知道是否有任何类似要求的免费项目.

java securitymanager

5
推荐指数
1
解决办法
484
查看次数

基于用户偏好的呼叫方法,更快/更好

我们有X方法,我们喜欢调用一个相对于用户设置的方法,以下哪个运行得更快?

情况1:

int userSetting = 1;
Method method = Class.getDeclaredMethod("Method" + userSetting);
method.invoke();
Run Code Online (Sandbox Code Playgroud)


案例2:

 int userSetting = 1;
 switch(userSettings) {
     case 0:
         Method0();
     break;
     case 1:
         Method1();
     break;
     ...
     ...
 }
Run Code Online (Sandbox Code Playgroud)


案例3:

int userSetting = 1;
if(userSetting == 0){
    Method0();
} else if(userSetting == 1){
    Method1();
} else....
Run Code Online (Sandbox Code Playgroud)

也:

  • 你认为即使速度较慢也是其他人更好的做法?如果是,为什么?
  • 另一种方式是女巫更好/更快......请告诉我们.

谢谢

java optimization

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