我正在尝试释放我的软件(我之前从未这样做过),到目前为止我已经能够执行mvn release:prepare.当我正在执行release:执行时出现以下错误:
[INFO] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plug in:2.7:deploy (default-deploy) on project img2stl: Failed to deploy artifacts: C ould not transfer artifact nl.byterendition:img2stl:jar:0.9 from/to byterenditio n-releases (https://localhost:443/svn/repo/releases): peer not authenticated -> [Help 1]
我在localhost:443设置了一个本地密码保护的svn存储库,所以我将以下内容添加到我的.m2文件夹中的settings.xml
编辑包括Edwin Buck的回答:
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<id>byterendition-releases</id>
<username>username</username>
<password>password</password>
</server>
<server>
<id>byterendition-snapshots</id>
<username>username</username>
<password>password</password>
</server>
</servers>
</settings>
Run Code Online (Sandbox Code Playgroud)
这是我的pom的有用部分:
<distributionManagement>
<repository>
<id>byterendition-releases</id>
<url>https://localhost:443/svn/repo/releases</url>
</repository>
<snapshotRepository>
<id>byterendition-snapshots</id>
<url>https://localhost:443/svn/repo/snapshots</url>
</snapshotRepository>
</distributionManagement>
Run Code Online (Sandbox Code Playgroud)
如何让maven访问svn存储库?
好吧,正如Edwin Buck建议我不应该使用localhost,但由于我无法让它工作,否则我想我会尝试使用我用于工作的远程SVN服务器.现在我得到一个不同的错误:
[INFO] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plug in:2.7:deploy …
我正在重写一些管理数据库的混乱代码,并看到原始程序员创建了一个映射到数据库的类,如下所示:
(我删除了在这个问题上没有用处的不必要的代码)
@Entity
@Data
@EqualsAndHashCode(callSuper = false, of = { "accessionCode", "header", "date" })
@SuppressWarnings("PMD.UnusedPrivateField")
public class PDBEntry implements Serializable {
@Id
@NaturalId
@NotEmpty
@Length(max = 4)
private String accessionCode;
@NaturalId
@NotEmpty
private Date date;
@NaturalId
// We allow for the header to be 'null'
private String header;
private Boolean isValidDssp;
@Temporal(TemporalType.TIMESTAMP)
private Date lastUpdated = new Date(System.currentTimeMillis());
protected PDBEntry(){}
public PDBEntry(String accessionCode, String header, Date date){
this.accessionCode = accessionCode;
this.header = header;
this.date = date;
}
}
Run Code Online (Sandbox Code Playgroud)
我仍然是Hibernate的初学者并使用Lombok,但是这不会做同样的事情并且Lombok不会自动为你创建所需的构造函数吗?
@Entity …Run Code Online (Sandbox Code Playgroud) hibernate是否保留LinkedHashSet的顺序,如果是,如何?如果这取决于数据库的类型,我想知道PostgreSQL的这个.
背景:
我知道LinkedHashSet的用途是什么,我问这个的原因是因为我将我执行的一些函数的名称记录到'logError'表中,该表与某些'functionName'表有多对多的关系.我需要这些函数保持与执行它们时的顺序相同,所以首先我找到相应的'functionName'对象,将它们放在LinkedHashSet中(在每个失败的函数之后),然后我坚持'logError'对象.
现在当我再次从数据库中获取'logError'对象时,它仍然会被订购吗?如果是这样,我很好奇Hibernate如何做到这一点.
我有一个模态设置对话框,这是一个JDialog.在这个设置窗口中,我将一些组件(包括按钮)放到另一个模态设置对话框中,该对话框也是JDialog.我把它们变成了JDialogs,因为这是我所知道的唯一一种模态对话框.
问题是这样的:当我创建主设置对话框时,我必须构建JDialog,或者没有父框架或父框架.由于我的主窗口是JFrame,我可以将其传递给主设置对话框构造函数.但是当我想创建第二个模态设置对话框时,它应该将主设置对话框作为父对象,我找不到获取JDialog的(J)框架的方法.我确实希望将该主要设置对话框作为父对象传递,以便第二个设置对话框在显示时以中心为中心.让我们假设第二个设置对话框没有用于传递位置的构造函数,只是JDialog的构造函数.
有没有办法获得JDialog的(J)框架?我的设置中是否存在设计缺陷,我是否应该使用其他设置对话框?(如果是这样,我应该如何设置这些替代设置对话框?)
谢谢你的帮助,Erik
更新:谢谢大家的答案.他们让我明白,显然并不是绝对有必要拥有JDialog的所有者.我认为对话框需要能够禁用所有者,直到对话框关闭,但显然模态独立于所有者.我还注意到即使对于所有者,对话框仍然不以所有者为中心,所以现在我的代码如下:
public class CustomDialog extends JDialog {
public CustomDialog(String title) {
setModal(true);
setResizable(false);
setTitle(title);
buildGUI();
}
public Result showDialog(Window parent) {
setLocationRelativeTo(parent);
setVisible(true);
return getResult();
}
}
Run Code Online (Sandbox Code Playgroud)
这也允许模态对话框中的模态对话框.
感谢你的帮助!
我有一个应用程序,其中需要计算一定数量的东西.此计算函数具有注释@Async(来自Spring Framework),这使得可以在4个线程上运行这些计算.问题是我需要大约40000个这些计算,我想知道所有计算的开始和结束之间的时间,所以我看到调用计算函数的for循环之前和之后的时间.但是现在所有的计算都被放入队列中,因此for循环立即结束,时间就像1秒钟,而计算完成需要几个小时.我已经尝试将最大队列大小设置为大约100(也很好地减少了内存使用量),但这也没有解决方案,因为我将错过它花费的总时间中的最后100次计算.
这是一些说明同样问题的代码:
执行课程:
public class Foo {
public void executeBlaALotOfTimes() {
long before = System.currentTimeMillis();
for (int i = 0; i<40000; i++) {
executeBla();
}
long after = System.currentTimeMillis();
System.out.println("Time it took for a lot of bla to execute: " + (after - before) / 1000.0 + " seconds.");
}
}
Run Code Online (Sandbox Code Playgroud)
以及执行计算的类:
@Service
public class Bar {
@Async
public void executeBla() {
System.out.println("Bla!");
}
}
Run Code Online (Sandbox Code Playgroud)
这将导致以下输出(假设Foo中的代码执行速度非常快):
Time it took for a lot of bla to execute: 0.0 seconds. Bla! …
我试图通过使用Action对象在我的GUI应用程序中将函数与state分开.我成功地使用它们来创建具有相同功能的菜单项和按钮.
我的问题是:我希望菜单中的"退出"项和框架的关闭按钮具有相同的操作.
目前我已经能够通过向框架添加以下WindowListener来解决它:
private class MainWindowListener extends WindowAdapter {
@Override
public void windowClosing(WindowEvent e) {
new ExitAction(model).actionPerformed(new ActionEvent(e.getSource(), e.getID(), "Exit"));
}
}
Run Code Online (Sandbox Code Playgroud)
是不是有更简单直接的方法来做到这一点?
在测试使用Swingworker的一些实时仿真代码时,我注意到我的GUI似乎总是以30 fps运行,不多也不少.每次用户与应用程序交互时(如鼠标移动)或调用Swingworker的process()方法时,我都会更新GUI.Swingworker现在没有做任何事情,它只是从GUI抓取鼠标位置并通过publish()和process()方法将其作为克隆发回(我只是这样做,看看我能做什么和能做什么在线程之间进行通信时要做,因为多线程对我来说仍然是一个新手.我在任何地方都没有定时器,Swingworker的process()方法在GUI上调用repaint(),所以我想知道是什么原因导致GUI以30 fps更新?是否可能默认情况下GUI中的vsync处于活动状态,或者它是Swingworker中process()方法的某些行为?最后:有没有办法获得更高的帧速率?
这是一个表现出这种行为的sscce:
public class SimGameTest implements Runnable {
public static void main(String[] args) {
SwingUtilities.invokeLater(new SimGameTest());
}
@Override
public void run() {
MainWindow mainWindow = new MainWindow(new Game());
mainWindow.setLocationRelativeTo(null);
mainWindow.setVisible(true);
}
}
public class MainWindow extends JFrame {
private Game game;
private GamePanel gamePanel;
public MainWindow(Game game) {
this.game = game;
createAndShowGUI();
startGame();
}
private void startGame() {
GameSim gameSim = new GameSim(game, gamePanel);
gameSim.execute();
}
private void createAndShowGUI() {
setTitle("Sim game test");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
JPanel contentPane = …Run Code Online (Sandbox Code Playgroud) 我正在编写一个由几个maven模块组成的应用程序.所有这些都必须将内容记录到他们自己的日志文件中.我在每个模块的main/resources文件夹中创建了一个log4j.properties文件.现在,当我从其中一个模块启动应用程序时,它会将所有内容写入该模块的日志文件中.我想知道这是否只是因为它可能从该启动模块获取了root-dir并使用它来保存日志文件,但是当我为该启动模块创建一个appender(使用log4j属性中的类别)时没有rootLogger它给我一个关于其他模块中无法找到其appender的类的错误,这表明找不到或读取了每个模块中的log4j.properties文件.任何想法如何解决这个问题并使这些模块使用这些属性文件,
我希望这个问题清楚明白,否则请随时询问细节.
我在我的域模型中使用枚举,但是当我尝试将对象持久化到数据库时,我收到以下错误:
Exception in thread "main" java.lang.ClassCastException: nl.ru.cmbi.pdbeter.core.model.enums.Enum_WhifFunction cannot be cast to java.lang.String
at org.hibernate.validator.NotEmptyValidator.isValid(NotEmptyValidator.java:36)
at org.hibernate.validator.ClassValidator.getInvalidValues(ClassValidator.java:386)
at org.hibernate.validator.ClassValidator.getInvalidValues(ClassValidator.java:352)
at org.hibernate.validator.event.ValidateEventListener.validate(ValidateEventListener.java:139)
at org.hibernate.validator.event.ValidateEventListener.onPreInsert(ValidateEventListener.java:172)
at org.hibernate.action.EntityIdentityInsertAction.preInsert(EntityIdentityInsertAction.java:142)
at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:65)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:321)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:130)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:117)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:535)
at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:527)
at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:523)
at nl.ru.cmbi.pdbeter.core.controller.DAO.GenericDAO.makePersistent(GenericDAO.java:73)
at nl.ru.cmbi.pdbeter.core.controller.DAO.WhifFunctionDAO.getWhifFunctionSet(WhifFunctionDAO.java:36)
at nl.ru.cmbi.pdbeter.core.controller.DAO.LoggedErrorWhifDAO.updateWhifFunctionSet(LoggedErrorWhifDAO.java:42)
at nl.ru.cmbi.pdbeter.whifclient.controller.WhifFunctionsUpdater.executeWhifFunctionsByAccessionCode(WhifFunctionsUpdater.java:93)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy31.executeWhifFunctionsByAccessionCode(Unknown Source) … 有没有办法在运行时请求数据库密码而不是将其(加密或不加密)放在hibernate.cfg.xml文件中?
java ×10
hibernate ×4
swing ×3
maven ×2
action ×1
asynchronous ×1
enumeration ×1
frame-rate ×1
https ×1
insertion ×1
jdialog ×1
log4j ×1
lombok ×1
modal-dialog ×1
passwords ×1
persistence ×1
properties ×1
queue ×1
release ×1
runtime ×1
spring ×1
svn ×1
swingworker ×1