小编Ste*_*hen的帖子

38
推荐指数
3
解决办法
9394
查看次数

什么时候应该将脚本放在/ src/main/scripts(maven标准)中,什么时候不放?

Maven的标准目录布局说,脚本应放置在src/main/scripts一个Maven项目.除了"约定优于配置"的优点之外,还有其他优势吗?我有一个使用程序集插件构建可执行jar-with-dependencies的项目.还有一些有用的脚本随之而来.是否有任何工具可以利用此布局来构建其他内容,例如,包含jar和这些脚本的存档在合理的位置?

[更新]事实上,我甚至会说,将脚本放入src/main/scripts不利的,就使用maven-assembly插件而言.看来一切都在/src/main(src/main/java当然除外)被复制到jar-with-dependencies的根目录,与src/main/resources此一样,这很有用.但是没有充分的理由在jar中加入脚本,尽管它没有特别的危害.如果,代替将它们放置在src/main/scripts一它们放在src/scripts(类似于标准src/assembly,这也不包括),那么它们不是复制到罐子,并且可以通过该组件的插件的稍后运行被复制到一个更大的存档.

更新:似乎我们必须区分从java代码中启动的运行时脚本和启动jar或执行其他操作的其他脚本.对于前者,将它们放入src/main/scripts可能是合适的.对于后者,不合适.

更新:我输入了一个针对maven文档错误.

更新:src/main/scripts目录已从标准目录布局文档中删除,因为它具有误导性.(然而遗留物仍然留在POM简介中,因为它与project.build.scriptSourceDirectory物业有关.)

maven maven-assembly-plugin

25
推荐指数
0
解决办法
6293
查看次数

如何使用不同的属性执行两次maven插件

我想从一个maven pom构建,运行同一个插件的两个连续执行,在同一阶段只有一个属性不同,这将导致创建两个不同的存档.由于配置相当复杂,我宁愿不复制它只是为了改变一个值,这会造成维护噩梦.如果以某种方式可以<executions>在插件配置的部分中定义这样的属性,我可以避免这种头痛.

问题:这可能吗?如果可以的话怎么样?

更新:两个答案提到使用多个执行,其中一个提到您可以在每次执行中使用单独的配置.但鉴于我的大多数配置在两次执行之间是不变的,我可以在插件级别上有一个配置,并且每个执行中的配置部分对于不同的部分也是如此吗?

pom.xml maven-3 maven

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

"Dockerized"应用程序经常构建在OS容器之上.为什么不打败这个目的呢?

一个问题出现了,因为我正在向我的团队介绍Docker,我不知道如何回答.

Docker Hub上的许多预构建容器(仅举一个例子是jboss/wildfly容器)构建在特定操作系统(Ubuntu,CentOS等)的容器之上.其中一些容器实际上只不过是这些操作系统的容器.

然而,Docker的主要存在理由是它声名鹊起,它声称它比虚拟机技术更好,它的重量更轻,因为它不需要在操作系统之上构建.但如果是这样的话,并且大多数容器都包含操作系统,这不会破坏目的并使索赔无效吗?

那么在这些OS Docker镜像中是什么,以及如何能够提出更轻量级的声明呢?它是操作系统的一个简化版本吗?

可以制作一个不是在操作系统之上构建的Docker镜像吗?什么决定了应用程序何时从容器中嵌入的OS获取OS服务,而不是从主机获取OS服务?

docker

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

java.library.path和classpath之间有什么关系

我正在寻找java.library.path和类路径之间关系的简单解释.虽然我不是新手,但我从来没有弄乱jlp但是我遇到了我参与的WebSphere MQ应用程序的问题,我们希望将其跟踪转向.不幸的是,一旦我告诉IBM我们已经重新打包MQ jar以便我们可以通过Maven进行部署,除非我们使用java.library.path加载WebSphere MQ jar,否则他们甚至不会和我讨论这个问题.

太棒了,让我们重做我们的整个部署策略.我可以咬那颗子弹,但这是我的问题:

java.library.path和类路径之间有什么关系?在jlp上找到的类是否对编译器可见?你必须在编译器的命令行上指定jlp吗?你能在jlp和classpath上指定这些类吗?哪个优先.

请不要因为研究不充分而喋喋不休地说这个问题.我当然用谷歌搜索"java.library.path".当然还有很多热门歌曲.我尝试进行高级谷歌搜索,将表达式限制在oracle.com网站上.还有很多点击率.我试过谷歌搜索这两个词.获得许多可疑质量的新手解释.我试过搜索java语言规范.没有命中.

我想要一个简洁而权威的解释.有人能指出我吗?

更新 - IBM坚持认为他们的MQ跟踪工具不会工作,除非我用-Djava.library.path = {MQ jars的路径}加载我的应用程序,除非我这样做,否则他们甚至不会支持我这条路.然而,当然,我有代码引用这些类并且必须编译.这是这个问题背后的动机.

java classpath java.library.path

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

如何将logback配置指定为类路径资源而不是文件

我有以下情况.我需要能够运行由不同批处理文件启动的两个程序,其中每个批处理文件从同一个jar调用带有main()的java类.我希望每个程序都有自己的日志.但是,第二个程序是第一个程序的安装程序,因此,我不希望/不能轻易指定-Dlogback.configurationFile =/path/to/config文件,因为该位置可能尚不存在.

Logback文档似乎提供了一个解决方案,但我需要一个如何使其工作的示例:

将默认配置文件的位置指定为系统属性

如果您愿意,可以使用名为logback.configurationFile的系统属性指定默认配置文件的位置.此属性的值可以是URL,类路径上的资源或应用程序外部文件的路径.

java -Dlogback.configurationFile =/path/to/config.xml chapters.configuration.MyApp1

任何人都可以指向一个例子,其中logback.configurationFile被定义为类路径上的资源而不是文件系统?

logback

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

如何在JPopupMenu中获得焦点

我是一名经验丰富的Java程序员,但是一个Swing新手所以请耐心等待我.

我希望有一个具有键盘焦点的JPopupWindow.我想响应箭头键,转义(关闭菜单)和回车(调用项目).我必须在菜单中添加一个KeyListener并自己编码所有这些,或者是否有某种"模式"我可以设置来激活这种行为,这似乎应该是标准的.

JPopupMenus上的标准Swing教程部分仅讲述助记符和加速器.我并不特别想要那些.

很难相信这完全违背了JPopupMenu的内容.

什么是获得我想要实现的东西的最佳方法?

java swing focus jpopupmenu

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

如何用换行符替换 Eclipse 中的字符串

当然,这个问题可以用谷歌搜索 - 但是大多数点击都非常古老,似乎不适用于 Eclipse Mars。

我只想用多行替换来替换一行。必须有某种方法可以做到这一点,但我似乎找不到任何有效的方法。

代替

import a.b.c.d;
Run Code Online (Sandbox Code Playgroud)

import e.f.g.h;
import i.j.k.l;
Run Code Online (Sandbox Code Playgroud)

java eclipse

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

如何从JList获取索引n处的COMPONENT(不是数据)

我通过传递一个数据数组来创建一个JList

public class MyJList extends JList() {
...

   public MyJList(final Object[] listData) {
       super[listData];
   }
Run Code Online (Sandbox Code Playgroud)

我使用ListCellRenderer呈现此列表,它为每个项目提供了一个组件,可以根据商务逻辑启用或禁用.

当我尝试通过键盘箭头导航时出现问题.我希望跳过禁用的项目.(在适当的方向继续下一个)我必须使用KeyboardListener,因为UI根据列表中选择的项目更改了一些内容.麻烦的是,在键盘监听器中,我无法获得具有所选索引的项目的COMPONENT.此Component不归JList所有,并且调用MyJList.getComponent(index)失败并返回ArrayIndexOutOfBoundsException.1是一个索引太大,即使我可以看到七个项目,其中四个已启用.

我如何以编程方式从我的JList以编程方式检索组件以确定它是否已启用?似乎返回Component的唯一接口是getListCellRendererComponent() - 它会更改组件的显示.我只是想让组件看看它是否已启用.

java swing jcomponent jlist listselectionlistener

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

什么是java.net.InetAddress.getLocalHost();的Linux命令行等效项

我需要与不了解Java的网络管理员进行沟通,以解决运行getLocalHost()时发现的网络设置问题。该框位于两个网络上,并且getLocalHost()返回错误的一个。在我们所有其他服务器上,都不会发生这种情况。我希望能够使用命令行显示网络管理员,这是错误的。但是我对linux网络命令还不够熟悉,无法知道要调用什么。

java linux network-programming

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