Categories
Uncategorized

jslint4java 1.3 post-release notes

These are the things I had to do after releasing.

Firstly, I needed to create a source archive as well as the main distribution archive. Git archive makes this super-easy.

$ git archive --format=zip --prefix='jslint4java-1.3/' rel-1.3 >jslint4java-1.3-src.zip

Secondly, I had to import the latest javadoc into svn at google code (it’s handy for linking to). I extracted this from the -dist.zip that got created as part of the release.

$ cd jslint4java-1.3/docs/apidocs
$ svn import --auto-props https://jslint4java.googlecode.com/svn/apidoc/1.3

Unfortunately, I had to then fix up all the damned properties anyway. I guess my svn config must need some attention.

Naturally, I forgot to update the version in NEWS.txt. Doh.

Categories
Uncategorized

Conditional maven modules

This is a little something that’s now caught me out a few times. Quite often, I’ll have a project with a parent POM, and a module that I only care about in certain circumstances. So I naturally do this.

  
  
    
      foo-core
      foo-webapp
    
    
      
        dist
        
          foo-dist
        
      
    
  

Unfortunately, this can interact badly with the release plugin. Unless that profile is activated during release, the module won’t have it’s version updated. So the next time you use that profile, it’ll break.

The correct solution is to “push down” the profile into the foo-dist module. i.e.

  
  
    foo
    foo-parent
    1.0-SNAPSHOT
    
      foo-core
      foo-webapp
      foo-dist
    
  

  
  
    foo-dist
    
      foo
      foo-parent
      1.0-SNAPSHOT
    
    
      
        dist
        
      
    
  

That way, foo-dist is always available, but is a noop unless the profile is activated. But it does ensure that the release plugin (and also the versions plugin) know that it’s there.