4/20/2011

My mvn notes

To skip running tests:

mvn install -DskipTests
mvn install -DskipTests=true //to override skipTests property in pom
To skip compiling and running tests:
mvn install -Dmaven.test.skip=true
To run maven in offline mode, to avoid downloading:
mvn -o install
mvn --offline install
To force check for updates of snapshots and releases from remote repositories:
mvn -U install
mvn --update-snapshots install
To override maven surefire plugin forkMode:
mvn test -DforkMode=never
mvn test -DforkMode=always
To debug a non-forked test, just need to attach the remote debugger to mvn process itself. mvnDebug is a convenience script located in the same directory as mvn executable:
mvnDebug test
mvnDebug test -DforkMode=never
To debug a forked test, you will need to set the debug option to the forked VM, not the mvn VM. The way to do it is to set -Dmaven.surefire.debug flag to mvn VM (the parent VM):
mvn test -Dmaven.surefire.debug
mvn test -Dmaven.surefire.debug -DforkMode=always
mvn test -Dmaven.surefire.debug -Dtest=com.my.test.MyTest#test1
To avoid OutOfMemoryError from running maven, especially maven 3, set environment variable MAVEN_OPTS:
# in $HOME/.tcshrc, or $HOME/.cshrc, if using csh or tcsh:
setenv MAVEN_OPTS "-Xmx1024m -XX:MaxPermSize=256m"

# in $HOME/.profile or $HOME/.bashrc, if using ksh or bash:
export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=256m"

# in Windows Control Panel, or set it in DOS command line:
set MAVEN_OPTS=-Xmx1024m -XX:MaxPermSize=256m

To run mvn with an alternate user setting file, e.g., settings-jboss.xml:
mvn -s $HOME/.m2/settings-jboss.xml
The content of settings-jboss.xml:
<settings>
<repositories>
<repository>
<id>jboss-public-repository-group</id>
<name>JBoss Public Maven Repository Group</name>
<url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
</repository>
</repositories>
</settings>

4/01/2011

My vim notes

To open all files whose paths are stored in a file into multiple vim buffers:

cat list.txt | xargs vim
xargs vim < /tmp/a
To redirect the output from a command (ps) into vim for easy search and maybe saving it:
ps -ef | vim -
To combine vim and find to open all matched files:
vim `find . -name build.xml`
find . -name web.xml | xargs vim
find . -name web.xml -exec vim {} \; is different: it will find a match, vim it, and repeat, and only 1 buffer in any vim session.

Be careful with file names with spaces. These pipelined use of find and xargs will treat spaces as delimiter between args, and break one arg into two.

vim search & replace in a file(replace old with new in the whole file, CASE sensitive, asking for confirmation). When prompted for confirmation, press 'a' to confirm all ocurrences including and after the current one.
:%s/old/new/gcI
To bookmark a location as bookmark a, type ma. To go to bookmark a, type 'a

To turn off syntax highlighting, run command ":sy off", or ":syn off", or ":syntax off", to turn on highlighting again ":sy on", or ":syn on", or ":syntax on". After typing ":sy", you can press TAB key for autocomplete, or press Ctrl-D to list all matching commands.

To turn off highlight after you are done with a search, run command ":nohl"

To turn on highight search, if it's not already on, run command ":set hls"

To save all changed files, run command ":wa"

To save all changed files and exit, run command ":xa"

":x" is the same as ":wq": save and exit

To close all files and exit, run command ":qa", but vim won't exit if there is unsaved changes.

To close all files and exit forcifully, run command ":q!".

To open a file and go the end of the file (to skip long copyright):
vim -c :$ pom.xml


To open a file (e.g., log file) in read-only mode and go to the end of file:
view -c :$ $JBOSS_HOME/standalone/log/server.log
vim -R -c :$ $JBOSS_HOME/standalone/log/server.log

The above commands are similar to tail -f, but easier to search and navigate inside vim.

To open a file with gvim or vim from Mac OS terminal, run
"open -a gvim build.xml"
If you configure Finder to always open *.xml files with gvim, directly run
"open build.xml"
You can still open them with the default TextEdit with
"open -a textedit build.xml"
To customize gvim window size (the default is too small), add the following lines to $HOME/.gvimrc on Mac/Linux/Solaris, or %HOMEPATH%\_gvimrc on Windows:
set lines=80 columns=120
To substitue the current character and stay in insertion mode, type s

To change to overwrite/replace mode (as opposed to insertion), shift-R (Uppercase R)

To undo the last undo: Ctrl-R

To search with case-insensitive option for this search only, /foo\c