我正在尝试设置一个多模块Maven项目,并且模块间依赖关系显然没有正确设置.
我有:
<modules>
<module>commons</module>
<module>storage</module>
</modules>
Run Code Online (Sandbox Code Playgroud)
在父POM(具有包装类型的pom)和子目录中commons/,storage/它们定义具有相同名称的JAR poms.
存储取决于Commons.
在主(主)目录中,我运行mvn dependency:tree并看到:
[INFO] Building system
[INFO] task-segment: [dependency:tree]
[INFO] ------------------------------------------------------------------------
[INFO] [dependency:tree {execution: default-cli}]
[INFO] domain:system:pom:1.0-SNAPSHOT
[INFO] \- junit:junit:jar:3.8.1:test
[INFO] ------------------------------------------------------------------------
[INFO] Building commons
[INFO] task-segment: [dependency:tree]
[INFO] ------------------------------------------------------------------------
[INFO] [dependency:tree {execution: default-cli}]
...correct tree...
[INFO] ------------------------------------------------------------------------
[INFO] Building storage
[INFO] task-segment: [dependency:tree]
[INFO] ------------------------------------------------------------------------
Downloading: http://my.repo/artifactory/repo/domain/commons/1.0-SNAPSHOT/commons-1.0-SNAPSHOT.jar
[INFO] Unable to find resource 'domain:commons:jar:1.0-SNAPSHOT' in repository my.repo (http://my.repo/artifactory/repo)
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] …Run Code Online (Sandbox Code Playgroud) 在文档中,它提到这些文件是包含要包含的模式或要排除的模式的列表的文件.然而,这意味着包含物,除了物质匹配模式之外,一切都被认为是排除.例如,包含以下内容的包含文件:
/opt/**.cfg
Run Code Online (Sandbox Code Playgroud)
应该只包含任何名为*.cfg的文件,该文件存在opt于树中名为any 的目录下的任何位置.所以它会匹配以下内容:
/opt/etc/myfile.cfg
/some/dir/opt/myfile.cfg
/notopt/opt/some/other/dir/myfile.cfg
Run Code Online (Sandbox Code Playgroud)
因此,我希望它隐含地排除其他任何东西.但事实并非如此,因为我在逐项输出中看到了这一点:
*deleting etc/rc.d/init.d/somescript
Run Code Online (Sandbox Code Playgroud)
那么什么是--include-from和--exclude-from?它们只是别名--filter-from吗?
我有一个枚举
public enum INFLOW_SEARCH_ON
{
ON_ENTITY_HANDLE = 0,
ON_LABEL = 1,
ON_NODE_HANDLE = 2
} // enum INFLOW_SEARCH_ON
Run Code Online (Sandbox Code Playgroud)
我必须使用这个枚举来在网格列中进行搜索
获取我正在使用的列索引
MyEnumVariable.GetHashCode()
Run Code Online (Sandbox Code Playgroud)
哪个工作正常,或者我应该使用
(short)MyEnumVariable
Run Code Online (Sandbox Code Playgroud)
我对使用GetHashCode()感到困惑.使用它有什么问题吗?
我有以下Spring Security配置:
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().antMatchers("/api/private/**", "/app/**").authenticated();
http.csrf().disable();
http.logout().logoutSuccessUrl("/");
http.exceptionHandling().accessDeniedPage("/403"); //.accessDeniedHandler(accessDeniedHandler);
}
}
Run Code Online (Sandbox Code Playgroud)
我期望以下逻辑:未经过身份验证的用户将被重定向到/403.而不是Spring显示默认的Tomcat 403页面.我也尝试过定制,accessDeniedHandler但没有任何成功.
如何在访问失败时实现自定义逻辑?
在我使用的项目中,我有一些与使用Jackson的JSON序列化相关的问题Spring Boot 2.0.0.M6,Spring Framework 5.0.1.RELEASE以及Jackson 2.9.2.
我在以下位置配置了以下与Jackson相关的设置application.properties:
spring.jackson.serialization.WRITE_DATES_AS_TIMESTAMPS=false
Run Code Online (Sandbox Code Playgroud)
序列化主要按照我的需要工作.尽管如此,我注意到杰克逊似乎已经截止了毫秒数000.
测试1:序列化Instant,毫秒设置为000:
Instant.parse("2017-09-14T04:28:48.000Z")"2017-09-14T04:28:48Z"测试2:使用设置为某些非000值的毫秒序列化Instant :
Instant.parse("2017-09-14T04:28:48.100Z")"2017-09-14T04:28:48.100Z"问题:
000?我正在使用Spring初始化HSQL数据库2.2.9
<jdbc:initialize-database enabled="true">
<jdbc:script execution="INIT" location="classpath:./create-tables.sql"/>
</jdbc:initialize-database>
Run Code Online (Sandbox Code Playgroud)
在create-tables.sql我用
CREATE TABLE IF NOT EXISTS MyTable(...);
Run Code Online (Sandbox Code Playgroud)
该表还有一个索引.我正在寻找比总是删除和创建索引更好的方法.
我试过了:
CREATE INDEX IF NOT EXISTS myIndex ...;
Run Code Online (Sandbox Code Playgroud)
我可以创建一个indexExisting()检查系统表的函数,如果找到索引则返回count(*)> 0,但是如果我写的话
IF indexExisting() = 0 THEN ...
Run Code Online (Sandbox Code Playgroud)
.sql它说,直接进入文件
java.sql.SQLSyntaxErrorException: unexcepted token: IF
Run Code Online (Sandbox Code Playgroud)
此外,存储过程似乎没有帮助,因为它们可能不包含DROP语句,据我所知.
因此,除了删除/创建索引之外的解决方案将是值得赞赏的.
谢谢
如何将我自己的 jar 文件部署到 Artifactory。例如,我有自己的插件,需要作为工件上传/部署。
我将 IBM MQ 类用于 JMS(IBM MQ 版本 8.0.0.4)并配置了自动重新连接。根据文档,重新连接是隐式发生的。我想在重新连接时发出一个简单的日志语句。出于这个原因,当发生这种情况时,我需要以某种方式得到通知。
在应用程序恢复页面上的 IBM 文档中,我偶然发现了“检测故障转移”部分,它说:
重新连接感知:向队列管理器注册 MQCBT_EVENT_HANDLER 事件处理程序。当客户端开始尝试重新连接到服务器时,事件处理程序使用 MQRC_RECONNECTING 发布,成功重新连接后发布 MQRC_RECONNECTED。然后,您可以运行例程来重新建立可预测的状态,以便客户端应用程序能够继续处理。
不幸的是,我没有找到演示如何以及在何处注册此类事件处理程序的 Java/JMS 代码示例。我不知道在我的情况下是否甚至支持。谁能为我提供正确的方向,甚至提供代码示例?非常感谢。
2020 年 2 月 5 日的问题更新:
在收到 Sashi 从 2020 年 1 月 27 日开始的初步答复后,添加了以下代码示例。
public static void main(String[] args) {
Connection connection = null;
Session session = null;
Object destination = null;
MessageProducer producer = null;
try {
JmsFactoryFactory jmsFactoryFactory = JmsFactoryFactory.getInstance(WMQConstants.WMQ_PROVIDER);
JmsConnectionFactory cf = jmsFactoryFactory.createConnectionFactory();
cf.setStringProperty(WMQConstants.WMQ_HOST_NAME, HOST);
cf.setIntProperty(WMQConstants.WMQ_PORT, PORT);
cf.setStringProperty(WMQConstants.WMQ_CHANNEL, CHANNEL);
cf.setIntProperty(WMQConstants.WMQ_CONNECTION_MODE, WMQConstants.WMQ_CM_CLIENT);
cf.setStringProperty(WMQConstants.WMQ_QUEUE_MANAGER, QM_NAME); …Run Code Online (Sandbox Code Playgroud) 我有一个 Apple 开发者企业帐户。我可以使用企业帐户将 iOS 应用程序发布到 Apple 应用程序商店吗?
我正在使用ScriptableObject资产来存储我的多语言应用程序项目的数据。除了我想更改现有数据结构的情况外,这工作得很好。
就我而言,数据结构如下所示:
[CreateAssetMenu(fileName = "Data", menuName = "ScriptableObjects/I18NData", order = 1)]
public class I18NData : ScriptableObject
{
public I18NSpriteData[] Sprites;
public I18NTextData[] Texts;
}
[System.Serializable]
public class I18NSpriteData
{
public string Label;
public Sprite SpriteEN;
public Sprite SpriteFR;
public Sprite SpriteSG;
public Sprite SpriteES;
public Sprite SpriteDE;
public Sprite SpriteIT;
}
[System.Serializable]
public class I18NTextData
{
public string Label;
[TextArea]
public string TextEN;
[TextArea]
public string TextFR;
[TextArea]
public string TextSG;
[TextArea]
public string TextES;
[TextArea]
public string …Run Code Online (Sandbox Code Playgroud) 我有一个基于
Spring Framework 4.3.7.RELEASE和的Spring Boot项目Spring Boot 1.5.2.RELEASE。
我使用Java配置方法。如何将这个项目升级到最新版本的Spring Boot和Spring Framework(Spring Boot 2.x,Spring Framework 5.x)?我已经签出了此页面,但不幸的是,这对我没有真正的帮助。很高兴收到与此有关的任何进一步指导。
这是我的build.gradle文件的样子:
buildscript {
ext {
springBootVersion = '1.5.2.RELEASE'
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
version = '0.1.0-alpha.2'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
bootRun.systemProperties = System.properties
springBoot {
executable = true
}
dependencies {
compile('org.springframework.boot:spring-boot-starter-web')
compile('org.springframework.boot:spring-boot-starter-data-jpa')
compile('org.springframework.boot:spring-boot-starter-security')
compile('mysql:mysql-connector-java')
compile('org.modelmapper:modelmapper:1.1.0')
compile('com.fasterxml.jackson.datatype:jackson-datatype-jsr310')
testCompile('org.springframework.boot:spring-boot-starter-test') …Run Code Online (Sandbox Code Playgroud) 我用Maven 3.3.9与Maven的依赖插件的版本2.4,以生成GraphML格式模块依赖关系树。该文件应导入到诸如yed生成依赖关系图之类的工具中。
我使用以下命令进行测试:
mvn dependency:tree -DoutputType=graphml -DoutputFile=dependency.graphml
我遇到的问题是文件中的每个节点都有太多的信息来满足我的需求。这使我的图表非常不可读。
我得到的输出(这是一个例子):
org.apache.maven.plugins:maven-dependency-plugin:maven-plugin:2.0-alpha-5-SNAPSHOT
我想要什么(这是一个例子):
maven-dependency-plugin
如何修改输出格式以满足我的需要?
java ×4
spring ×3
spring-boot ×3
c# ×2
maven ×2
app-store ×1
artifactory ×1
bash ×1
build.gradle ×1
dependencies ×1
enums ×1
gethashcode ×1
hsqldb ×1
ibm-mq ×1
ios ×1
jackson2 ×1
json ×1
maven-2 ×1
maven-3 ×1
rsync ×1
unix ×1