小编Chr*_*est的帖子

版本控制数据库持久化对象,你会怎样?

(与版本化数据库模式无关)

与数据库接口的应用程序通常具有由来自许多表的数据组成的域对象.假设应用程序支持这些域对象的CVS意义上的版本控制.

对于某些仲裁域对象,您将如何设计数据库模式来处理此要求?有经验可以分享吗?

database versioning database-design

42
推荐指数
2
解决办法
6878
查看次数

从Maven程序集中排除"提供的"依赖项

我试图使用Maven程序集插件来构建一个jar-with-dependencies,除了提供范围的那些.

我已将jar-with-dependencies复制到assembly.xml文件中并在我的pom中配置它的用法.这里供参考:

<?xml version="1.0" encoding="UTF-8"?>
<assembly>
  <id>injectable-jar</id>
  <formats>
    <format>jar</format>
  </formats>
  <includeBaseDirectory>false</includeBaseDirectory>
  <dependencySets>
    <dependencySet>
      <unpack>true</unpack>
      <scope>runtime</scope>
    </dependencySet>
  </dependencySets>
  <fileSets>
    <fileSet>
      <directory>${project.build.outputDirectory}</directory>
    </fileSet>
  </fileSets>
</assembly>
Run Code Online (Sandbox Code Playgroud)

我发现,如果我将范围设置为provided,那么我可以构建一个包含我想要的内容的jar ,但我无法弄清楚如何获得反向行为.

maven-2 maven-plugin

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

如何使javadoc继承适用于外部API?(与Maven2)

当类重写具体方法或实现和抽象方法时,除非显式覆盖,否则Javadoc会自动继承.

或者,至少该工具尝试这样做.它似乎不适用于链接的外部API.例如,当我在我的代码实现java.util.Map或JRE中的其他内容时,javadocs不会从JRE javadocs/apidocs继承/复制.

在我的具体情况下,我试图在Maven2 Javadoc插件中配置它,但是当我直接运行javadoc CLI工具时它是一样的.

我的Maven2 Javadoc插件配置目前如下所示:

<reporting>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-javadoc-plugin</artifactId>
      <version>2.7</version>
      <configuration>
        <stylesheet>maven</stylesheet>
        <links>
          <link>http://download.oracle.com/javase/6/docs/api</link>
        </links>
      </configuration>
    </plugin>
  </plugins>
</reporting>
Run Code Online (Sandbox Code Playgroud)

有关如何使这项工作的任何指示?

java maven-2 javadoc maven-javadoc-plugin

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

Java Transport.send()是线程安全的吗?

该方法是静态的,但我无法提及它是否是线程安全的.我计划同时使用多个线程来访问此方法,如果可能的话我想避免同步块.

javax.mail.Transport.send(msg);
Run Code Online (Sandbox Code Playgroud)

java email concurrency

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

CVS中的功能分支?

我有责任在这个特定的项目中使用CVS,所以即使我真的要切换到别的东西,比如Git,我也不能.

所以,我真正的问题是这样的:我们有一个约定,每次我们发布时我们都会在CVS中创建一个新的分支(我们也标记,但这不是重点).我们称这些版本为分支,它们允许我们轻松检出特定版本并对其进行热修改 - 这就是我们的次要版本.

但是现在我有一些大风险,风险猖獗的变化,如果我在Git工作,我会在眨眼之间创建一个功能分支.然而,在CVS工作,我尝试在另一个项目中创建功能分支,发现事情很快变得混乱.我最终得到了很多分支,我忘记了哪些分支被同步,这需要合并,哪些不再使用.

那么,更接近问号,在CVS中使用特征分支是否可行?他们是不是很值得,或者我最终会因为不使用它们而感到抱歉?我应该咬紧牙关,只是开始在HEAD编码,但是弯曲我的编码过程以尽可能最不引人注目的方式引入变化?

cvs version-control branch

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

UL_UNRELEASED_LOCK_EXCEPTION_PATH可能的FindBugs误报?

我有这样的代码:

public class Thingy {
  private final Lock lock = new ReentrantLock();
  private boolean shutdown;
  public void shutdown() {
    lock.lock();
    shutdown = true;
    lock.unlock();
  }
}
Run Code Online (Sandbox Code Playgroud)

并且FindBugs抱怨说"Thingy.shutdown()不会释放所有异常路径上的锁"并且我应该shutdown = true;在try-finally中包装该行,但据我所知,没有办法可以解决这个问题.

我错了还是假阳性?

java concurrency findbugs thread-safety

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

如果过滤太多,Scala for-comprehension?

我有以下程序:(Scala 2.9.2,Java6)

object Forcomp {
  def main(args: Array[String]): Unit = {
    val xs = List(-1, 0, 1)
    val xss = for (a <- xs; b <- xs if a != 0 && b != 0) yield (a,b)
    println(xss)
  }
}
Run Code Online (Sandbox Code Playgroud)

它产生这样的输出:List((-1,-1), (-1,1), (1,-1), (1,1)) 我本来期望它只能过滤掉值,其中ab两个 0 -不是所有的值,其中任一 a或者b是0.

我可以通过将if子句改为此来获得我想要的行为:if (a,b) != (0,0)- 但是,我真的应该这样做吗?这是一个错误还是这种故意行为?举个例子,我对此感到惊讶.

scala for-comprehension

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