如何从我打包为战争的项目的一部分创建一个jar

我是Maven的新手,所以如果这是微不足道的话,我道歉。 基本上,我正在开发一个webapp,我正在使用Maven来管理项目。 我在我的pom.xml中有war ,这样当我运行mvn package ,它会吐出一个war文件在Web服务器上部署。 现在,作为此应用程序的一部分,我们使用第三方库作为战争交付给我们,它在Web服务器上单独部署。 这场战争包括我们编码的一些自定义集成function。 对于持久性逻辑,我最初只是在这个集成代码中直接编写了一个存储库。 当我发现我需要更多的持久性逻辑(超过基本的SELECT)时,我发现我想要使用在我们的应用程序代码中找到的存储库和域对象。 所以,理想情况下,我希望能够包装我们的核心软件包,然后在第三方战争中包含该jar,这样我就可以在那里使用相同的function。 我只是不知道如何设置pom.xml来告诉它我在这个jar中想要什么包(如果需要的话甚至只需要1个包),以及如何创建jar本身。 有没有办法从一个项目中的特定包生成一个jar,该项目设置为将整个项目打包为战争? 我找到了有关Maven jar插件的信息 ,但它说,“如果项目的包装设置为’jar’,那么只要它通过”包“阶段就会执行此插件。” 我项目中的包装没有设置为jar。 还有一些方法可以使用这个插件吗?

如何正确使用goto语句

我正在上高中AP计算机科学课。 我决定把一个goto语句放到我们的一个实验室里来玩,但是我得到了这个错误。 Exception in thread “main” java.lang.Error: Unresolved compilation problems: Syntax error on token “goto”, assert expected restart cannot be resolved to a variable at Chapter_3.Lab03_Chapter3.Factorial.main(Factorial.java:28) 我在Stackoverflow上转到了一个goto问题,以了解如何正确地完成它,并且我完全按照其中一个答案进行了演示。 我真的不明白为什么编译器想要一个assert语句(至少这是我认为它想要的),我也不知道如何使用assert 。 它似乎想重启部分goto restart; 作为变量,但重新启动只是一个标签,将程序拉回到第10行,以便用户可以输入有效的int 。 如果它想重新启动变量,我该怎么做? import java.util.*; public class Factorial { public static void main(String[] args) { int x = 1; int factValue = 1; Scanner […]

游戏循环中最佳睡眠时间计算的研究

在编写动画和小游戏时,我开始了解Thread.sleep(n);重要性Thread.sleep(n); 我依靠这种方法告诉操作系统何时我的应用程序不需要任何CPU,并使用它使我的程序以可预测的速度进行。 我的问题是JRE在不同的操作系统上使用不同的实现此function的方法。 在基于UNIX(或受影响)的操作系统上,例如Ubuntu和OS X,底层JRE实现使用function良好且精确的系统将CPU时间分配给不同的应用程序,从而使我的2D游戏平滑无滞后。 但是,在Windows 7和较旧的Microsoft系统上,CPU时间分配似乎有所不同,并且您通常会在给定睡眠量后恢复CPU时间,从目标睡眠开始大约1-2 ms。 但是,偶尔会有额外10-20毫秒的睡眠时间爆发。 这导致我的游戏在发生这种情况时每隔几秒就会滞后一次。 我注意到这个问题存在于我在Windows上尝试过的大多数Java游戏中,Minecraft是一个值得注意的例子。 现在,我一直在互联网上寻找解决这个问题的方法。 我见过很多人只使用Thread.yield(); 而不是Thread.sleep(n); 无论你的游戏实际需要多少CPU,它都会以当前使用的CPU核心满负荷为代价完美运行。 这对于在笔记本电脑或高能耗工作站上玩游戏并不理想,而且在Mac和Linux系统上进行不必要的权衡。 进一步outlook我发现了一种常用的纠正睡眠时间不一致的方法,称为“旋转睡眠”,你只能一次命令睡眠1毫秒,并使用System.nanoTime();检查一致性System.nanoTime(); 方法,即使在Microsoft系统上也非常准确。 这有助于正常1-2毫秒的睡眠不一致,但它无法帮助抵抗偶尔爆发+ 10-20毫秒的睡眠不一致,因为这通常会导致花费更多的时间比我的循环的一个循环应该花费所有一起。 经过大量的观察,我找到了安迪·马拉科夫的这篇神秘文章,这对改善我的循环很有帮助: http : //andy-malakov.blogspot.com/2010/06/alternative-to-threadsleep.html 基于他的文章我写了这个睡眠方法: // Variables for calculating optimal sleep time. In nanoseconds (1s = 10^-9ms). private long timeBefore = 0L; private long timeSleepEnd, timeLeft; // The estimated game update rate. private double timeUpdateRate; […]

如何在Android中解析“yyyy-MM-dd’T’HH:mm:ss.SSSXXX”日期格式到简单?

如何在Android中解析此日期2018-01-09T11:11:02.0+03:00到dd.MM.yyyy hh:mm格式? 09和11之间的T是什么意思? 谢谢。 我不知道后端开发人员是如何获得这种格式的。 我正在使用Java。

JavaFX:将UI控件添加到TreeTableView

假设我在TreeTableView中有2列,现在我想在第一列中添加字符串/ Label,在另一列中添加ProgressBar。 我将如何完成这样的事情? 真的很感激任何帮助!

为什么整数数据类型以静默方式溢出而不是抛出exception

我已经学会了(至少在java中)整数/长值静默地溢出,它们的值从溢出时的最小值开始而不是抛出任何exception。 我正在使用外部api进行某些文件操作,其中从属性文件加载最大文件大小。 在我当地的测试环境中一切都很好。 代码进入实时环境后,最大文件大小限制根本不起作用。 经过两天的调试/分析代码后,根本没有成功。 然后由于其他原因,我采用了live constants.properties文件并用它调试了代码。 O_0 我只是想问,是什么阻止他们在溢出时抛出exception?

L&F中String键的位置

Java中有几个组件具有预定义的外观和自动打印在其上的文本字符串。 例子是JFileChooser。 此外,当您尝试在JFileChooser中进行非法重命名时,会弹出一个JDialog(或JOptionPane)… 在什么* .java文件中可以串起代表那些键的键,以及它们在哪里得到它们的值? 我说的是Nimbus L&F ……我找不到它们在Nimbus和Synth中(这并不意味着它们不存在)……我确实在BasicFileChooser中找到了JFileChooser字符串。 一句话:我正在翻译我的程序而且我不想要任何惊喜,所以我想知道哪些组件有预定义的字符串以及在哪里找到它们,从上面特别是JDialog …… 编辑:我找到了BasicFileChooserUI,这是方法之一: protected void installStrings(JFileChooser fc) { Locale l = fc.getLocale(); newFolderErrorText = UIManager.getString(“FileChooser.newFolderErrorText”,l); newFolderErrorSeparator = UIManager.getString(“FileChooser.newFolderErrorSeparator”,l); newFolderParentDoesntExistTitleText = UIManager.getString(“FileChooser.newFolderParentDoesntExistTitleText”, l); newFolderParentDoesntExistText = UIManager.getString(“FileChooser.newFolderParentDoesntExistText”, l); fileDescriptionText = UIManager.getString(“FileChooser.fileDescriptionText”,l); directoryDescriptionText = UIManager.getString(“FileChooser.directoryDescriptionText”,l); saveButtonText = UIManager.getString(“FileChooser.saveButtonText”,l); openButtonText = UIManager.getString(“FileChooser.openButtonText”,l); saveDialogTitleText = UIManager.getString(“FileChooser.saveDialogTitleText”,l); openDialogTitleText = UIManager.getString(“FileChooser.openDialogTitleText”,l); cancelButtonText = UIManager.getString(“FileChooser.cancelButtonText”,l); […]

使用jsoup遍历iframe

我有像这样的html结构。 我想得到没有类或id的第二个表。 我如何从iframe获取第二个表? 我是这样想的 Elements iframe = doc.select(“iframe”); for(Element e : iframe) { System.out.println(e.child(0)); } 谁能帮我?

如何在没有任何用处的情况下停止永远运行的线程

在下面的代码中,我有一个while(true)循环。 考虑到try块中存在一些代码的情况,其中线程应该执行一些约需一分钟的任务,但是由于某些预期的问题,它正在运行。 我们可以阻止那个线程吗? public class thread1 implements Runnable { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub thread1 t1 = new thread1(); t1.run(); } @Override public void run() { // TODO Auto-generated method stub while(true){ try{ Thread.sleep(10); } catch(Exception e){ e.printStackTrace(); } } } }

servletfilter如何识别下一个目标是另一个filter还是servlet / jsp?

我们通常最终在web.xml中为servlet中的任何Filter编写/* 。 requestRedirectorFilter /action `. 现在我的疑问是java如何识别下一个servlet / jsp是哪个? 因为我们通过任何要求 request.getRequestDispatcher(“/ABCXYZ”).forward(request, (HttpServletResponse)servletResponse); 要在下一个servlet / jsp上导航,默认情况下容器将在web.xml中搜索。 在web.xml中, /*已经存在于我们使用的filter中。 究竟这里的实际问题就开始了。 如果/* [其作用类似于任何请求的通用接收器]已存在于web.xml中,那么heck容器如何知道如何跟随/ABCXYZ而不是/* ? 请在这方面分享您的观点和知识。