小编Joe*_*tra的帖子

是否可以从SourceForge发布到Maven Central Repository?

我想向Maven发布一个开源Java库,因此很容易被其他项目访问.Git存储库位于SourceForge,但我不太明白是否可以从这里发布.

阅读Maven指南以上传工件我发现只有三个存储库被"批准".即:

  • Apache软件基金会
  • FuseSource Forge
  • Nuiton.org

我的问题

如果我在其中一个中创建一个辅助git存储库,那么保持两个git存储库同步不是一件麻烦事吗?我的意思是,拥有重复的git存储库是否明智,只是为了能够发布到Maven Central Repository?

我有什么明智的选择?

java git maven

10
推荐指数
2
解决办法
165
查看次数

如何杀死 Java Future?

我正在开发的服务使用 Future 来并行运行多个任务;每个任务最多可能需要一分钟才能完成。然而,外部库似乎有问题,因为在某些情况下(2% 的时间)它不会返回。在这些情况下,我想给出 2 分钟的等待时间,如果还没有返回,我想杀死 future 并稍后重新安排(最终会成功)。

我该如何杀死未来?

  private void run() {
    ExecutorService queue = Executors.newFixedThreadPool(1);

    Future<Integer> f = queue.submit(new MyTask());
    Thread.sleep(500);

    try {
      Integer r = f.get(120, TimeUnit.SECONDS);
    } catch (InterruptedException | ExecutionException | TimeoutException e) {
      e.printStackTrace();
      f.cancel(true);
    }

    // Bad future still running here and I need it dead.

  }

  private class MyTask implements Callable<Integer> {
    private ExternalLibrary extlib = new ExternalLibrary();

    @Override
    public Integer call() throws Exception {
      // step 1 - do a few …
Run Code Online (Sandbox Code Playgroud)

java future executorservice

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

Maven可以运行非构建任务吗?

我从Ant搬到Maven,但想念一件事:执行任意任务的能力。我想摆脱蚂蚁的,build.xml但我仍然只需要它。

有时我需要为XML处理和PDF处理运行一些统计信息。它们不是构建的一部分,但无论如何我都需要使它们自动化。在Ant中,我以前只是在代码中编译并运行Java类以使用javaAnt任务,例如:

<target name="gen-stats">
  <java classname="com.utl.StatsGen" classpath="build" />
</target>

<target name="compute-complexity">
  <java classname="com.utl.PDFComplexity" classpath="lib/pdf-cpx.jar" />
</target>
Run Code Online (Sandbox Code Playgroud)

试图把我的大脑包起来。也许Maven并非旨在提供任何自动化方面的帮助,而只是解决“面向构建”的任务。是吗?

java ant maven-3

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

如何对齐 git 中的列以改进格式?

我想改进“gitbranch”命令的格式,我在其中添加了包含提交日期提交用户的逻辑。

git for-each-ref refs/heads/ --format='%(HEAD) %(颜色:粗体黄色)%(refname:short)%(颜色:重置)%(颜色:绿色)%(committerdate)%(颜色:重置) - %(内容:主题) %(颜色:暗白色) - %(作者姓名)%(颜色:重置)'

在此输入图像描述

是否有办法改进从第一个(实际)输出到第二个(所需)输出的格式?

这根本不是什么紧急的事情,但却是一件好事。我使用过 git 格式,但我的知识有限。

git format git-branch

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

使用 Java Stream 使用数据库游标

我想使用 Java Stream 使用数据库游标。我希望 Java 流根据需要获取和处理行,并避免首先将所有 500 万行加载到内存中,然后再处理它们。

是否可以在不将整个表加载到 RAM 中的情况下使用它?

到目前为止我的代码如下所示:

Cursor<Product> products = DAO.selectCursor(...);

// 1. Initialize variables
long count = 0;
...
for (Iterator<Product> it = products.iterator(); it.hasNext();) {
  Product p = it.next();
  // 2. Processing each row
  ...
}
// 3. Concluding (processing totals, stats, etc.)
double avg = total / count;
...
Run Code Online (Sandbox Code Playgroud)

它确实工作得很好,但是有点麻烦,我想利用 Stream API。

java ram java-stream database-cursor

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

Gradle 插件依赖

在 Java 中开发 Gradle 插件所需的确切依赖是什么?理想情况下,我想从众所周知的存储库(例如 Maven Central 或类似存储库)中获取它。

我有一个具有核心功能的 Maven 项目,我刚刚添加了两个额外的插件,一个用于 Ant,一个用于 Maven。它们已经过测试和工作;简单!现在,我想为 Gradle 插件添加第三个模块,以使任何 Gradle 项目也可以使用此功能。

但是,我找不到开发 Gradle 插件所需的确切依赖项。

Gradle 文档(例如https://docs.gradle.org/current/userguide/java_gradle_plugin.html)至少可以说写得不是很好。他们提到:

  • gradleAPI()依赖
  • java-gradle-plugin依赖

但他们很不清楚......没有组,没有版本(真的吗?)。

如果有人能启发我从哪里获得这些依赖项,我将非常感激。

java gradle maven-3 gradle-plugin

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

Maven 程序集插件 - 多版本:true

我的多 jar 应用程序在 Java 11 中运行并显示与 Log4j2 相关的警告:

警告:不支持 sun.reflect.Reflection.getCallerClass。这会影响性能。

它没有崩溃,但很困扰我,因为运营团队(AppDynamics 监视器)向我询问了它。我读到我需要在清单中使用“Multi-Release:true”条目,但我不知道如何告诉 Maven Assembly Plugin 添加它。

我没有在 pom.xml 中使用任何其他插件。我应该使用Maven Shade Plugin吗?

无论如何,这是我的 pom.xml 的 Maven Assembly Plugin 部分。

<plugin>
  <artifactId>maven-assembly-plugin</artifactId>
  <version>3.2.0</version>
  <configuration>
    <descriptorRefs>
      <descriptorRef>jar-with-dependencies</descriptorRef>
    </descriptorRefs>
  </configuration>
  <executions>
    <execution>
      <id>make-assembly</id>
      <phase>package</phase>
      <goals>
        <goal>single</goal>
      </goals>
    </execution>
  </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

我包含的库(我也写过)使用 Log4j 2 作为依赖项,如下所示:

<!-- Log4j 2 -->

<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-api</artifactId>
  <version>2.12.1</version>
</dependency>
<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-core</artifactId>
  <version>2.12.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我怎样才能摆脱这个警告?

java maven log4j2 java-11

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

Unkown 相当于 PostgreSQL 中的 Null 吗?

我的查询中有一些复杂的比较,我想确保在存在空值的情况下正确理解逻辑。在 PostgreSQL 中,“unknown”似乎与“null”是一样的,我没想到会这样。

这是我的例子:

create table tab (col int);

insert into tab (col) values (7), (11), (null);


select col,
  (col = 7) is true as is_true,
  (col = 7) is false as is_false,
  (col = 7) is unknown as is_unknown,
  (col = 7) is null as is_null
  from tab;
Run Code Online (Sandbox Code Playgroud)

它显示输出:

+-----+--------+---------+-----------+--------+
|a    |is_true |is_false |is_unknown |is_null |
+-----+--------+---------+-----------+--------+
|7    |true    |false    |false      |false   |
|11   |false   |true     |false      |false   |
|null |false   |false    |true       |**true**|
+-----+--------+---------+-----------+--------+
Run Code Online (Sandbox Code Playgroud)

最后一个值不应该是“假”而不是“真”吗?

sql postgresql logical-operators

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